diff --git a/README.md b/README.md index c357e7e8..4e77fd8c 100644 --- a/README.md +++ b/README.md @@ -1052,7 +1052,7 @@ The folowing screen shots are for a dataframe with the following data: |Function|Description|Preview| |:------:|:---------:|:-----:| |**Remove Duplicate Columns**|Remove any columns that contain the same data as another and you can either keep the first, last or none of these columns that match this criteria. You can test which columns will be removed by clicking the "View Duplicates" button.|![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/duplicates/columns.png)| -|**Remove Duplicate Column Names**|Remove any columns with the same name (name comparison is case-insensitive) and you can either keep the first, last or none of these columns that match this criteria. You can test which columns will be removed by clicking the "View Duplicates" button.|![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/duplicates/columns_names.png)| +|**Remove Duplicate Column Names**|Remove any columns with the same name (name comparison is case-insensitive) and you can either keep the first, last or none of these columns that match this criteria. You can test which columns will be removed by clicking the "View Duplicates" button.|![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/duplicates/column_names.png)| |**Remove Duplicate Rows**|Remove any rows from your dataframe where the values of a subset of columns are considered duplicates. You can choose to keep the first, last or none of the rows considered duplicated.|![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/duplicates/rows.png)| |**Show Duplicates**|Break any duplicate rows (based on a subset of columns) out into another dataframe viewable in your D-Tale session. You can choose to view all duplicates or select specific groups based on the duplicated value.|![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/duplicates/show.png)| diff --git a/frontend/jest.config.js b/frontend/jest.config.js index 00a70a99..f6fceb98 100644 --- a/frontend/jest.config.js +++ b/frontend/jest.config.js @@ -22,6 +22,8 @@ module.exports = { moduleNameMapper: { '\\.(css|scss)$': '/config/styleMock.js', axios: '/node_modules/axios/dist/node/axios.cjs', + 'd3-cloud': '/node_modules/d3-cloud/index.js', + '^d3-(.*)$': '/node_modules/d3-$1/dist/d3-$1.js', }, setupFiles: [testPolyfills], setupFilesAfterEnv: ['/setupTests.ts'], diff --git a/frontend/package.json b/frontend/package.json index cfb09531..e6f5a816 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -31,148 +31,142 @@ "private": true, "license": "SEE LICENSE IN proprietary", "devDependencies": { - "@babel/core": "7.20.12", - "@babel/eslint-parser": "7.19.1", - "@babel/preset-env": "7.20.2", - "@babel/preset-flow": "7.18.6", - "@babel/preset-react": "7.18.6", - "@babel/preset-typescript": "7.18.6", - "@babel/register": "7.18.9", - "@testing-library/jest-dom": "5.16.5", - "@testing-library/react": "13.4.0", + "@babel/core": "7.22.9", + "@babel/eslint-parser": "7.22.9", + "@babel/preset-env": "7.22.9", + "@babel/preset-flow": "7.22.5", + "@babel/preset-react": "7.22.5", + "@babel/preset-typescript": "7.22.5", + "@babel/register": "7.22.5", + "@testing-library/jest-dom": "5.17.0", + "@testing-library/react": "14.0.0", "@testing-library/user-event": "14.4.3", - "@types/chroma-js": "2.1.4", + "@types/chroma-js": "2.4.0", "@types/cross-spawn": "6.0.2", - "@types/jest": "29.2.5", + "@types/jest": "29.5.3", "@types/numeral": "2.0.2", - "@types/plotly.js": "2.12.11", + "@types/plotly.js": "2.12.24", "@types/prop-types": "15.7.5", "@types/raf": "3.4.0", - "@types/react": "18.0.26", + "@types/react": "18.2.15", "@types/react-color": "3.0.6", - "@types/react-dom": "18.0.10", + "@types/react-dom": "18.2.7", "@types/react-redux": "7.1.25", "@types/react-select": "5.0.1", "@types/react-slider": "1.3.1", - "@types/react-syntax-highlighter": "15.5.6", - "@types/react-virtualized": "9.21.21", + "@types/react-syntax-highlighter": "15.5.7", + "@types/react-virtualized": "9.21.22", "@types/reactcss": "1.2.6", "@types/redux-mock-store": "^1.0.3", "@types/resolve": "1.20.2", "@types/styled-components": "5.1.26", - "@typescript-eslint/eslint-plugin": "5.48.1", - "@typescript-eslint/eslint-plugin-tslint": "5.48.1", - "@typescript-eslint/parser": "5.48.1", - "autoprefixer": "10.4.13", + "@typescript-eslint/eslint-plugin": "6.1.0", + "@typescript-eslint/eslint-plugin-tslint": "6.1.0", + "@typescript-eslint/parser": "6.1.0", + "autoprefixer": "10.4.14", "babel-core": "7.0.0-bridge.0", "babel-eslint": "10.1.0", - "babel-jest": "29.3.1", - "babel-loader": "9.1.2", + "babel-jest": "29.6.1", + "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "cross-spawn": "7.0.3", - "css-loader": "6.7.3", - "eslint": "8.31.0", - "eslint-config-prettier": "8.6.0", + "css-loader": "6.8.1", + "eslint": "8.45.0", + "eslint-config-prettier": "8.8.0", "eslint-plugin-babel": "5.3.1", "eslint-plugin-flowtype": "8.0.3", - "eslint-plugin-import": "2.26.0", - "eslint-plugin-jest": "27.2.1", - "eslint-plugin-jsdoc": "39.6.4", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-jest": "27.2.3", + "eslint-plugin-jsdoc": "46.4.4", "eslint-plugin-only-warn": "1.1.0", - "eslint-plugin-prettier": "4.2.1", + "eslint-plugin-prettier": "5.0.0", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-react": "7.31.11", + "eslint-plugin-react": "7.32.2", "exports-loader": "4.0.0", - "expose-loader": "4.0.0", + "expose-loader": "4.1.0", "file-loader": "6.2.0", - "flow-bin": "0.196.3", + "flow-bin": "0.212.0", "imports-loader": "4.0.1", - "jest": "29.3.1", - "jest-environment-jsdom": "29.3.1", - "jest-junit": "15.0.0", + "jest": "29.6.1", + "jest-environment-jsdom": "29.6.1", + "jest-junit": "16.0.0", "jsinspect": "0.12.7", "parallel-webpack": "2.6.0", - "postcss-loader": "7.0.2", - "postcss-nested": "6.0.0", - "prettier": "2.8.2", + "postcss-loader": "7.3.3", + "postcss-nested": "6.0.1", + "prettier": "3.0.0", "raf": "3.4.1", - "react-docgen": "5.4.3", + "react-docgen": "6.0.2", "react-select-event": "^5.5.1", "react-test-renderer": "18.2.0", "redux-devtools-extension": "2.13.9", "redux-mock-store": "^1.5.4", "regenerator-runtime": "0.13.11", - "resolve": "1.22.1", - "sass": "^1.60.0", - "sass-loader": "13.2.0", - "serialize-javascript": "6.0.0", - "style-loader": "3.3.1", - "terser": "^5.16.1", - "terser-webpack-plugin": "5.3.6", - "ts-jest": "29.0.3", - "ts-loader": "9.4.2", + "resolve": "1.22.2", + "sass": "^1.63.6", + "sass-loader": "13.3.2", + "serialize-javascript": "6.0.1", + "style-loader": "3.3.3", + "terser": "^5.19.1", + "terser-webpack-plugin": "5.3.9", + "ts-jest": "29.1.1", + "ts-loader": "9.4.4", "tslint": "6.1.3", "url-loader": "4.1.1", - "webpack": "5.76.0", - "webpack-cli": "5.0.1" + "webpack": "5.88.2", + "webpack-cli": "5.1.4" }, "dependencies": { - "@blueprintjs/datetime": "4.4.8", - "@blueprintjs/datetime2": "^0.9.6", - "@fortawesome/fontawesome-free": "6.2.1", - "@reduxjs/toolkit": "^1.9.1", - "@sgratzl/chartjs-chart-boxplot": "4.1.0", + "@blueprintjs/datetime": "5.0.5", + "@fortawesome/fontawesome-free": "6.4.0", + "@reduxjs/toolkit": "^1.9.5", + "@sgratzl/chartjs-chart-boxplot": "4.2.4", "any-promise": "1.3.0", - "axios": "1.2.2", + "axios": "1.4.0", "babel-polyfill": "6.26.0", - "bootstrap": "5.2.3", - "chart.js": "4.1.2", - "chartjs-plugin-zoom": "2.0.0", + "bootstrap": "5.3.0", + "chart.js": "4.3.0", + "chartjs-plugin-zoom": "2.0.1", "chroma-js": "2.4.2", "create-react-class": "15.7.0", "currency-symbol-map": "5.1.0", "dom-helpers": "5.2.1", "es6-object-assign": "1.1.0", "es6-promise": "4.2.8", - "highlight.js": "11.7.0", - "i18next": "22.4.9", - "immutable": "4.2.2", + "highlight.js": "11.8.0", + "i18next": "23.2.11", + "immutable": "4.3.1", "moment": "2.29.4", "ntee": "2.0.0", "numeral": "2.0.6", "oboe": "2.1.5", - "plotly.js-geo-dist-min": "2.17.1", + "plotly.js-geo-dist-min": "2.24.3", "postcss-cli": "10.1.0", "re-resizable": "6.9.9", "react": "18.2.0", "react-addons-shallow-compare": "15.6.3", - "react-bootstrap": "2.7.0", + "react-bootstrap": "2.8.0", "react-color": "2.19.3", "react-dom": "18.2.0", "react-draggable": "4.4.5", "react-dropzone": "14.2.3", "react-hotkeys": "2.0.0", - "react-i18next": "12.1.4", + "react-i18next": "13.0.2", "react-motion": "0.5.2", - "react-redux": "8.0.5", - "react-select": "5.7.0", - "react-slider": "2.0.4", + "react-redux": "8.1.1", + "react-select": "5.7.4", + "react-slider": "2.0.6", "react-syntax-highlighter": "15.5.0", - "react-virtualized": "9.22.3", - "react-wordcloud": "1.2.7", + "react-virtualized": "9.22.5", + "react-wordcloud": "https://github.com/ahmohamed/react-wordcloud", "reactcss": "1.2.3", - "redux": "4.2.0", + "redux": "4.2.1", "redux-thunk": "2.4.2", "string.prototype.startswith": "1.0.0", - "styled-components": "5.3.6", - "typescript": "4.9.4", + "styled-components": "6.0.4", + "typescript": "5.1.6", "uuid": "9.0.0", - "vis-data": "7.1.4", - "vis-network": "9.1.2" - }, - "resolutions": { - "d3-array": "2.3.3", - "minimist": "1.2.7", - "postcss": "8.4.21" + "vis-data": "7.1.6", + "vis-network": "9.1.6" } } diff --git a/frontend/static/__tests__/chartUtils-test.ts b/frontend/static/__tests__/chartUtils-test.ts index 3402767a..fdf0c2c1 100644 --- a/frontend/static/__tests__/chartUtils-test.ts +++ b/frontend/static/__tests__/chartUtils-test.ts @@ -64,7 +64,7 @@ describe('chartUtils tests', () => { ({ controller: { _config: { selectedPoint: 0 } } as any as DatasetController, data: [LINE_POINT.element], - } as ChartMeta), + }) as ChartMeta, ctx: buildChartContext(), } as any as Chart<'line'>; plugin.afterDraw?.(chartInstance, {}, {}); @@ -93,7 +93,7 @@ describe('chartUtils tests', () => { ({ controller: { _config: { selectedPoint: 0 } } as any as DatasetController, data: [LINE_POINT.element], - } as ChartMeta), + }) as ChartMeta, ctx: buildChartContext(), } as any as Chart<'line'>; plugin.afterDraw?.(chartInstance, {}, {}); diff --git a/frontend/static/__tests__/dtale/GridEventHandler-test.tsx b/frontend/static/__tests__/dtale/GridEventHandler-test.tsx index bf204c9a..1876ba75 100644 --- a/frontend/static/__tests__/dtale/GridEventHandler-test.tsx +++ b/frontend/static/__tests__/dtale/GridEventHandler-test.tsx @@ -82,7 +82,7 @@ describe('RibbonDropdown', () => { it('opens ribbon menu for first 5 pixels', async () => { const setTimeoutSpy = jest.spyOn(global, 'setTimeout'); - setTimeoutSpy.mockImplementation((cb, ms) => ({} as NodeJS.Timeout)); + setTimeoutSpy.mockImplementation((cb, ms) => ({}) as NodeJS.Timeout); const clearTimeoutSpy = jest.spyOn(global, 'clearTimeout'); const mainPanel = container.getElementsByClassName('main-panel-content')[0]; const myEvent = createEvent.mouseMove(mainPanel, { clientY: 5 }); @@ -98,7 +98,7 @@ describe('RibbonDropdown', () => { it('hides ribbon menu outside of first 45 pixels', async () => { await buildMock(undefined, { ribbonMenuOpen: true }); const setTimeoutSpy = jest.spyOn(global, 'setTimeout'); - setTimeoutSpy.mockImplementation((cb, ms) => ({} as NodeJS.Timeout)); + setTimeoutSpy.mockImplementation((cb, ms) => ({}) as NodeJS.Timeout); const mainPanel = container.getElementsByClassName('main-panel-content')[0]; const myEvent = createEvent.mouseMove(mainPanel, { clientY: 45 }); fireEvent(mainPanel, myEvent); @@ -111,7 +111,7 @@ describe('RibbonDropdown', () => { it('does not hide ribbon menu when dropdown is open', async () => { buildMock(undefined, { ribbonMenuOpen: true, ribbonDropdown: { visible: true } }); const setTimeoutSpy = jest.spyOn(global, 'setTimeout'); - setTimeoutSpy.mockImplementation((cb, ms) => ({} as NodeJS.Timeout)); + setTimeoutSpy.mockImplementation((cb, ms) => ({}) as NodeJS.Timeout); const mainPanel = container.getElementsByClassName('main-panel-content')[0]; const myEvent = createEvent.mouseMove(mainPanel, { clientY: 45 }); await fireEvent(mainPanel, myEvent); diff --git a/frontend/static/__tests__/dtale/create/random-test.tsx b/frontend/static/__tests__/dtale/create/random-test.tsx index 5e12156d..98d66bbb 100644 --- a/frontend/static/__tests__/dtale/create/random-test.tsx +++ b/frontend/static/__tests__/dtale/create/random-test.tsx @@ -116,13 +116,13 @@ describe('CreateRandom', () => { await fireEvent.click(screen.getByText('Date')); }); await act(async () => { - await fireEvent.click(result.getElementsByClassName('bp4-popover2-target')[0]); + await fireEvent.click(result.getElementsByClassName('bp5-popover-target')[0]); }); await act(async () => { - await fireEvent.change(result.getElementsByClassName('bp4-input')[0], { target: { value: '20000101' } }); + await fireEvent.change(result.getElementsByClassName('bp5-input')[0], { target: { value: '20000101' } }); }); await act(async () => { - await fireEvent.change(result.getElementsByClassName('bp4-input')[1], { target: { value: '20000102' } }); + await fireEvent.change(result.getElementsByClassName('bp5-input')[1], { target: { value: '20000102' } }); }); await act(async () => { await fireEvent.click(result.getElementsByClassName('ico-check-box-outline-blank')[0]); diff --git a/frontend/static/__tests__/dtale/formatting/Formatting.test.support.tsx b/frontend/static/__tests__/dtale/formatting/Formatting.test.support.tsx index 85ad3d9f..4b662c22 100644 --- a/frontend/static/__tests__/dtale/formatting/Formatting.test.support.tsx +++ b/frontend/static/__tests__/dtale/formatting/Formatting.test.support.tsx @@ -50,6 +50,7 @@ export class Spies { * Build the initial wrapper. * * @param colIdx the index of the column to open the menu of. + * @return main DOM element */ public async setupWrapper(colIdx: number): Promise { const store = reduxUtils.createDtaleStore(); diff --git a/frontend/static/__tests__/dtale/range/DataViewer-range-select-row-test.tsx b/frontend/static/__tests__/dtale/range/DataViewer-range-select-row-test.tsx index 9c183529..0125c28d 100644 --- a/frontend/static/__tests__/dtale/range/DataViewer-range-select-row-test.tsx +++ b/frontend/static/__tests__/dtale/range/DataViewer-range-select-row-test.tsx @@ -69,8 +69,8 @@ describe('DataViewer tests', () => { start: 1, end: 1, }); - const cellOnRow2 = [...result.getElementsByClassName('cell')].find((c) => - c.getAttribute('cell_idx')?.endsWith('2'), + const cellOnRow2 = [...result.getElementsByClassName('cell')].find( + (c) => c.getAttribute('cell_idx')?.endsWith('2'), )!; await act(async () => { fireEvent.mouseOver(cellOnRow2, { shiftKey: true }); diff --git a/frontend/static/__tests__/dtale/ribbon/RibbonDropdown-test.tsx b/frontend/static/__tests__/dtale/ribbon/RibbonDropdown-test.tsx index 1029ba9e..e0306a9c 100644 --- a/frontend/static/__tests__/dtale/ribbon/RibbonDropdown-test.tsx +++ b/frontend/static/__tests__/dtale/ribbon/RibbonDropdown-test.tsx @@ -49,10 +49,10 @@ describe('RibbonDropdown', () => { hiddenProps?: Record, ): Promise => { const rectSpy = jest.spyOn(HTMLDivElement.prototype, 'getBoundingClientRect'); - rectSpy.mockImplementation(() => ({ left: 5, top: 5, width: 10, ...dims } as DOMRect)); + rectSpy.mockImplementation(() => ({ left: 5, top: 5, width: 10, ...dims }) as DOMRect); store = reduxUtils.createDtaleStore(); buildInnerHTML({ settings: '', predefinedFilters: PREDEFINED_FILTERS, ...hiddenProps }, store); - element = { getBoundingClientRect: () => ({ left: 5, top: 5, width: 10, ...dims } as DOMRect) } as HTMLElement; + element = { getBoundingClientRect: () => ({ left: 5, top: 5, width: 10, ...dims }) as DOMRect } as HTMLElement; store.dispatch({ type: ActionType.OPEN_RIBBON_DROPDOWN, name, element }); wrapper = await act(async (): Promise => { const result = render( diff --git a/frontend/static/__tests__/filters/ColumnFilter-date-test.tsx b/frontend/static/__tests__/filters/ColumnFilter-date-test.tsx index 70748402..937e328f 100644 --- a/frontend/static/__tests__/filters/ColumnFilter-date-test.tsx +++ b/frontend/static/__tests__/filters/ColumnFilter-date-test.tsx @@ -28,21 +28,21 @@ describe('ColumnFilter date tests', () => { afterAll(() => spies.afterAll()); it('ColumnFilter date rendering', async () => { - expect(result.getElementsByClassName('bp4-input').length).toBeGreaterThan(0); + expect(result.getElementsByClassName('bp5-input').length).toBeGreaterThan(0); await act(async () => { await fireEvent.click(result.getElementsByClassName('ico-check-box-outline-blank')[0]); }); - expect(result.getElementsByClassName('bp4-disabled')).toHaveLength(2); + expect(result.getElementsByClassName('bp5-disabled')).toHaveLength(2); await act(async () => { await fireEvent.click(result.getElementsByClassName('ico-check-box')[0]); }); - expect(result.getElementsByClassName('bp4-disabled')).toHaveLength(0); + expect(result.getElementsByClassName('bp5-disabled')).toHaveLength(0); await act(async () => { - await fireEvent.change(result.getElementsByClassName('bp4-input')[0], { target: { value: '20000102' } }); + await fireEvent.change(result.getElementsByClassName('bp5-input')[0], { target: { value: '20000102' } }); }); expect(spies.saveSpy).toHaveBeenLastCalledWith('1', 'col4', { type: 'date', start: '20000102', end: '20000131' }); await act(async () => { - await fireEvent.change(result.getElementsByClassName('bp4-input')[1], { target: { value: '20000103' } }); + await fireEvent.change(result.getElementsByClassName('bp5-input')[1], { target: { value: '20000103' } }); }); expect(spies.saveSpy).toHaveBeenLastCalledWith('1', 'col4', { type: 'date', start: '20000102', end: '20000103' }); }); diff --git a/frontend/static/__tests__/filters/ColumnFilter-numeric-async-test.tsx b/frontend/static/__tests__/filters/ColumnFilter-numeric-async-test.tsx index bb8d1dbb..a97d4403 100644 --- a/frontend/static/__tests__/filters/ColumnFilter-numeric-async-test.tsx +++ b/frontend/static/__tests__/filters/ColumnFilter-numeric-async-test.tsx @@ -58,7 +58,7 @@ describe('ColumnFilter numeric tests', () => { await act(async () => { await fireEvent.click(result.getElementsByClassName('ico-check-box')[0]); }); - expect(result.getElementsByClassName('bp4-disabled')).toHaveLength(0); + expect(result.getElementsByClassName('bp5-disabled')).toHaveLength(0); const asyncSelect = result.getElementsByClassName('Select')[0] as HTMLElement; await act(async () => { await selectEvent.openMenu(asyncSelect); diff --git a/frontend/static/__tests__/filters/ColumnFilter-string-async-test.tsx b/frontend/static/__tests__/filters/ColumnFilter-string-async-test.tsx index 6836998a..0f9aa5e6 100644 --- a/frontend/static/__tests__/filters/ColumnFilter-string-async-test.tsx +++ b/frontend/static/__tests__/filters/ColumnFilter-string-async-test.tsx @@ -50,7 +50,7 @@ describe('ColumnFilter string tests', () => { await act(async () => { await fireEvent.click(result.getElementsByClassName('ico-check-box')[0]); }); - expect(result.getElementsByClassName('bp4-disabled')).toHaveLength(0); + expect(result.getElementsByClassName('bp5-disabled')).toHaveLength(0); const asyncSelect = result.getElementsByClassName('Select')[1] as HTMLElement; await act(async () => { await selectEvent.clearAll(asyncSelect); diff --git a/frontend/static/__tests__/iframe/DataViewer-base-test.tsx b/frontend/static/__tests__/iframe/DataViewer-base-test.tsx index 1f6f5011..902427a2 100644 --- a/frontend/static/__tests__/iframe/DataViewer-base-test.tsx +++ b/frontend/static/__tests__/iframe/DataViewer-base-test.tsx @@ -34,9 +34,9 @@ describe('DataViewer iframe tests', () => { window.open = openSpy; (window as any).top = { location: { href: 'http://test.com' } }; (window as any).self = { location: { href: 'http://test/dtale/iframe' } }; - jest.mock('@blueprintjs/datetime2', () => { + jest.mock('@blueprintjs/datetime', () => { const { createMockComponent } = require('../mocks/createMockComponent'); - return { DateInput2: createMockComponent('DateInput2') }; + return { DateInput: createMockComponent('DateInput') }; }); }); diff --git a/frontend/static/__tests__/main-test.ts b/frontend/static/__tests__/main-test.ts index 19132d21..41b2c93f 100644 --- a/frontend/static/__tests__/main-test.ts +++ b/frontend/static/__tests__/main-test.ts @@ -102,9 +102,9 @@ describe('main tests', () => { jest.resetModules(); (axios.get as any).mockImplementation((url: string) => Promise.resolve({ data: reduxUtils.urlFetcher(url) })); - jest.mock('@blueprintjs/datetime2', () => { + jest.mock('@blueprintjs/datetime', () => { const { createMockComponent } = require('./mocks/createMockComponent'); - return { DateInput2: createMockComponent('DateInput2') }; + return { DateInput: createMockComponent('DateInput') }; }); }); diff --git a/frontend/static/chartUtils.ts b/frontend/static/chartUtils.ts index a17619ba..8bb71ad4 100644 --- a/frontend/static/chartUtils.ts +++ b/frontend/static/chartUtils.ts @@ -17,6 +17,7 @@ import { LineController, LineElement, Plugin, + Point, PointElement, Scale, ScatterController, @@ -160,8 +161,8 @@ export const getLineGradient = yAxisID?: string, minY?: number, maxY?: number, - ): ((chart: Chart<'line', number[], unknown>, data: number[]) => CanvasGradient) => - (chart: Chart<'line', number[], unknown>, data: number[]): CanvasGradient => { + ): ((chart: Chart<'line', Array, unknown>, data: number[]) => CanvasGradient) => + (chart: Chart<'line', Array, unknown>, data: number[]): CanvasGradient => { const { ctx, scales } = chart; const rgbaBuilder = buildRGB(colorScale); // The context, needed for the creation of the linear gradient. diff --git a/frontend/static/dtale/DataViewer.tsx b/frontend/static/dtale/DataViewer.tsx index f847fe63..6035d958 100644 --- a/frontend/static/dtale/DataViewer.tsx +++ b/frontend/static/dtale/DataViewer.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { @@ -19,7 +20,7 @@ import Popup from '../popups/Popup'; import { ActionType, ClearDataViewerUpdateAction } from '../redux/actions/AppActions'; import * as actions from '../redux/actions/dtale'; import { buildURLParams } from '../redux/actions/url-utils'; -import { AppState } from '../redux/state/AppState'; +import * as selectors from '../redux/selectors'; import { RemovableError } from '../RemovableError'; import * as DataRepository from '../repository/DataRepository'; @@ -45,6 +46,47 @@ const MultiGrid = _MultiGrid as unknown as React.FC; const ROW_SCANS = { arcticdb: 200, base: 55 }; +const selectResult = createSelector( + [ + selectors.selectDataId, + selectors.selectTheme, + selectors.selectSettings, + selectors.selectMenuPinned, + selectors.selectRibbonMenuOpen, + selectors.selectDataViewerUpdate, + selectors.selectMaxColumnWidth, + selectors.selectMaxRowHeight, + selectors.selectEditedTextAreaHeight, + selectors.selectVerticalHeaders, + selectors.selectIsArcticDB, + ], + ( + dataId, + theme, + settings, + menuPinned, + ribbonMenuOpen, + dataViewerUpdate, + maxColumnWidth, + maxRowHeight, + editedTextAreaHeight, + verticalHeaders, + isArcticDB, + ) => ({ + dataId, + theme, + settings: { ...settings, isArcticDB }, + menuPinned, + ribbonMenuOpen, + dataViewerUpdate, + maxColumnWidth: maxColumnWidth || undefined, + maxRowHeight: maxRowHeight || undefined, + editedTextAreaHeight, + verticalHeaders: verticalHeaders ?? false, + isArcticDB, + }), +); + export const DataViewer: React.FC = () => { const { dataId, @@ -58,19 +100,7 @@ export const DataViewer: React.FC = () => { editedTextAreaHeight, verticalHeaders, isArcticDB, - } = useSelector((state: AppState) => ({ - dataId: state.dataId, - theme: state.theme, - settings: { ...state.settings, isArcticDB: state.isArcticDB }, - menuPinned: state.menuPinned, - ribbonMenuOpen: state.ribbonMenuOpen || (state.settings?.lock_header_menu ?? state.lockHeaderMenu), - dataViewerUpdate: state.dataViewerUpdate, - maxColumnWidth: state.maxColumnWidth || undefined, - maxRowHeight: state.maxRowHeight || undefined, - editedTextAreaHeight: state.editedTextAreaHeight, - verticalHeaders: state.settings.verticalHeaders ?? false, - isArcticDB: state.isArcticDB, - })); + } = useSelector(selectResult); const dispatch = useDispatch(); const closeColumnMenu = (): AnyAction => dispatch(actions.closeColumnMenu() as any as AnyAction); const updateFilteredRanges = (query: string): AnyAction => diff --git a/frontend/static/dtale/DtaleHotkeys.tsx b/frontend/static/dtale/DtaleHotkeys.tsx index 2c932433..fa7e0b0e 100644 --- a/frontend/static/dtale/DtaleHotkeys.tsx +++ b/frontend/static/dtale/DtaleHotkeys.tsx @@ -1,10 +1,12 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { GlobalHotKeys } from 'react-hotkeys'; import { useDispatch, useSelector } from 'react-redux'; import { ActionType, OpenChartAction, ToggleMenuAction } from '../redux/actions/AppActions'; import * as chartActions from '../redux/actions/charts'; -import { AppState, Popups, PopupType } from '../redux/state/AppState'; +import { selectCtrlCols, selectCtrlRows, selectDataId, selectEditedCell, selectIsVSCode } from '../redux/selectors'; +import { Popups, PopupType } from '../redux/state/AppState'; import { ColumnDef } from './DataViewerState'; import * as menuFuncs from './menu/dataViewerMenuUtils'; @@ -15,8 +17,13 @@ interface DtaleHotkeysProps { columns: ColumnDef[]; } +const selectResult = createSelector( + [selectDataId, selectEditedCell, selectIsVSCode, selectCtrlRows, selectCtrlCols], + (dataId, editedCell, isVSCode, ctrlRows, ctrlCols) => ({ dataId, editedCell, isVSCode, ctrlRows, ctrlCols }), +); + export const DtaleHotkeys: React.FC = ({ columns }) => { - const { dataId, editedCell, isVSCode, ctrlRows, ctrlCols } = useSelector((state: AppState) => state); + const { dataId, editedCell, isVSCode, ctrlRows, ctrlCols } = useSelector(selectResult); const dispatch = useDispatch(); const openChart = (chartData: Popups): OpenChartAction => dispatch(chartActions.openChart(chartData)); const openMenu = (): ToggleMenuAction => dispatch({ type: ActionType.OPEN_MENU }); diff --git a/frontend/static/dtale/GridCell.tsx b/frontend/static/dtale/GridCell.tsx index 3381742c..bc0de370 100644 --- a/frontend/static/dtale/GridCell.tsx +++ b/frontend/static/dtale/GridCell.tsx @@ -1,10 +1,11 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { Checkbox } from '../popups/create/LabeledCheckbox'; import { ActionType, HideMenuTooltipAction, ShowMenuTooltipAction } from '../redux/actions/AppActions'; -import { AppState } from '../redux/state/AppState'; +import * as selectors from '../redux/selectors'; import * as bu from './backgroundUtils'; import { ColumnDef, DataRecord, DataViewerData, DataViewerPropagateState, StringColumnFormat } from './DataViewerState'; @@ -27,6 +28,44 @@ export interface GridCellProps { loading: boolean; } +const selectResult = createSelector( + [ + selectors.selectEditedCell, + selectors.selectAllowCellEdits, + selectors.selectIsArcticDB, + selectors.selectSettings, + selectors.selectRowRange, + selectors.selectColumnRange, + selectors.selectRangeSelect, + selectors.selectCtrlRows, + selectors.selectCtrlCols, + selectors.selectSelectedRow, + ], + ( + editedCell, + allowCellEdits, + isArcticDB, + settings, + rowRange, + columnRange, + rangeSelect, + ctrlRows, + ctrlCols, + selectedRow, + ) => ({ + editedCell, + allowCellEdits, + isArcticDB, + settings, + rowRange, + columnRange, + rangeSelect, + ctrlRows, + ctrlCols, + selectedRow, + }), +); + const GridCell: React.FC = ({ loading, columnIndex, @@ -40,7 +79,7 @@ const GridCell: React.FC = ({ propagateState, t, }) => { - const { editedCell, allowCellEdits, isArcticDB, settings, ...rangeState } = useSelector((state: AppState) => state); + const { editedCell, allowCellEdits, isArcticDB, settings, ...rangeState } = useSelector(selectResult); const dispatch = useDispatch(); const showTooltip = (element: HTMLElement, content: React.ReactNode): ShowMenuTooltipAction => dispatch({ type: ActionType.SHOW_MENU_TOOLTIP, element, content }); @@ -108,7 +147,7 @@ const GridCell: React.FC = ({ let value: React.ReactNode = '-'; // wide strings need to be displayed to the left so they are easier to read let valueStyle: React.CSSProperties = - (style.width ?? 0) > 350 && gu.isStringCol(colCfg?.dtype) ? { textAlign: 'left' } : {}; + (style.width ?? (0 as any)) > 350 && gu.isStringCol(colCfg?.dtype) ? { textAlign: 'left' } : {}; const divProps: React.HTMLAttributes = {}; let className = buildCellClassName(); if (colCfg?.name) { diff --git a/frontend/static/dtale/GridCellEditor.tsx b/frontend/static/dtale/GridCellEditor.tsx index fb816d2c..2e32c856 100644 --- a/frontend/static/dtale/GridCellEditor.tsx +++ b/frontend/static/dtale/GridCellEditor.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { useDispatch, useSelector } from 'react-redux'; @@ -5,7 +6,8 @@ import { Checkbox } from '../popups/create/LabeledCheckbox'; import { DtaleSelect } from '../popups/create/LabeledSelect'; import { ActionType, ClearEditAction, OpenChartAction } from '../redux/actions/AppActions'; import * as chartActions from '../redux/actions/charts'; -import { AppState, BaseOption, Popups } from '../redux/state/AppState'; +import { selectDataId, selectMaxColumnWidth, selectSettings } from '../redux/selectors'; +import { BaseOption, Popups } from '../redux/state/AppState'; import * as ColumnFilterRepository from '../repository/ColumnFilterRepository'; import { ColumnDef, DataViewerData, DataViewerPropagateState } from './DataViewerState'; @@ -23,6 +25,11 @@ export interface GridCellEditorProps { rowCount: number; } +const selectResult = createSelector( + [selectDataId, selectSettings, selectMaxColumnWidth], + (dataId, settings, maxColumnWidth) => ({ dataId, settings, maxColumnWidth }), +); + export const GridCellEditor: React.FC = ({ colCfg, rowIndex, @@ -32,11 +39,7 @@ export const GridCellEditor: React.FC = ({ rowCount, ...props }) => { - const { dataId, settings, maxColumnWidth } = useSelector((state: AppState) => ({ - dataId: state.dataId, - settings: state.settings, - maxColumnWidth: state.maxColumnWidth, - })); + const { dataId, settings, maxColumnWidth } = useSelector(selectResult); const dispatch = useDispatch(); const openChart = (chartData: Popups): OpenChartAction => dispatch(chartActions.openChart(chartData)); const clearEdit = (): ClearEditAction => dispatch({ type: ActionType.CLEAR_EDIT }); diff --git a/frontend/static/dtale/GridEventHandler.tsx b/frontend/static/dtale/GridEventHandler.tsx index 4c18fd8b..c23fd4ac 100644 --- a/frontend/static/dtale/GridEventHandler.tsx +++ b/frontend/static/dtale/GridEventHandler.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -13,7 +14,8 @@ import { ShowRibbonMenuAction, } from '../redux/actions/AppActions'; import * as chartActions from '../redux/actions/charts'; -import { AppState, Popups, PopupType, RangeState } from '../redux/state/AppState'; +import * as selectors from '../redux/selectors'; +import { Popups, PopupType, RangeState } from '../redux/state/AppState'; import { ColumnDef, DataViewerData, StringColumnFormat } from './DataViewerState'; import { convertCellIdxToCoords, getCell, isCellEditable } from './gridUtils'; @@ -31,6 +33,58 @@ export interface GridEventHandlerProps { data: DataViewerData; } +const selectResult = createSelector( + [ + selectors.selectAllowCellEdits, + selectors.selectDataId, + selectors.selectBaseRibbonMenuOpen, + selectors.selectMenuPinned, + selectors.selectRibbonDropdownVisible, + selectors.selectSidePanelVisible, + selectors.selectSidePanelView, + selectors.selectSidePanelOffset, + selectors.selectDragResize, + selectors.selectRangeSelect, + selectors.selectRowRange, + selectors.selectCtrlRows, + selectors.selectSettings, + selectors.selectLockHeaderMenu, + selectors.selectIsArcticDB, + ], + ( + allowCellEdits, + dataId, + ribbonMenuOpen, + menuPinned, + ribbonDropdownOpen, + sidePanelOpen, + sidePanel, + sidePanelOffset, + dragResize, + rangeSelect, + rowRange, + ctrlRows, + settings, + lockHeaderMenu, + isArcticDB, + ) => ({ + allowCellEdits: allowCellEdits && !isArcticDB, + dataId, + menuPinned, + ribbonMenuOpen, + ribbonDropdownOpen, + sidePanelOpen, + sidePanel, + sidePanelOffset, + dragResize, + rangeSelect, + rowRange, + ctrlRows, + settings, + lockHeaderMenu, + }), +); + const GridEventHandler: React.FC> = ({ columns, data, @@ -52,22 +106,7 @@ const GridEventHandler: React.FC ({ - allowCellEdits: state.allowCellEdits && !state.isArcticDB, - dataId: state.dataId, - ribbonMenuOpen: state.ribbonMenuOpen, - menuPinned: state.menuPinned, - ribbonDropdownOpen: state.ribbonDropdown.visible, - sidePanelOpen: state.sidePanel.visible, - sidePanel: state.sidePanel.view, - sidePanelOffset: state.sidePanel.offset, - dragResize: state.dragResize, - rangeSelect: state.rangeSelect, - rowRange: state.rowRange, - ctrlRows: state.ctrlRows, - settings: state.settings, - lockHeaderMenu: state.settings?.lock_header_menu ?? state.lockHeaderMenu, - })); + } = useSelector(selectResult); const dispatch = useDispatch(); const openChart = (chartData: Popups): OpenChartAction => dispatch(chartActions.openChart(chartData)); const editCell = (editedCell: string): EditedCellAction => dispatch({ type: ActionType.EDIT_CELL, editedCell }); diff --git a/frontend/static/dtale/Header.tsx b/frontend/static/dtale/Header.tsx index 5f20bb60..d75869a7 100644 --- a/frontend/static/dtale/Header.tsx +++ b/frontend/static/dtale/Header.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import { TFunction } from 'i18next'; import * as React from 'react'; import Draggable, { DraggableEvent } from 'react-draggable'; @@ -16,7 +17,8 @@ import { } from '../redux/actions/AppActions'; import * as chartActions from '../redux/actions/charts'; import * as actions from '../redux/actions/dtale'; -import { AppState, Popups, PopupType, RangeState } from '../redux/state/AppState'; +import { selectColumnRange, selectCtrlCols, selectDataId, selectSettings } from '../redux/selectors'; +import { Popups, PopupType, RangeState } from '../redux/state/AppState'; import * as bu from './backgroundUtils'; import { ignoreMenuClicks } from './column/columnMenuUtils'; @@ -83,6 +85,11 @@ export interface HeaderProps { maxRowHeight?: number; } +const selectResult = createSelector( + [selectDataId, selectSettings, selectColumnRange, selectCtrlCols], + (dataId, settings, columnRange, ctrlCols) => ({ dataId, settings, columnRange, ctrlCols }), +); + const Header: React.FC = ({ loading, columns, @@ -93,7 +100,7 @@ const Header: React.FC = ({ maxRowHeight, t, }) => { - const { dataId, settings, columnRange, ctrlCols } = useSelector((state: AppState) => state); + const { dataId, settings, columnRange, ctrlCols } = useSelector(selectResult); const dispatch = useDispatch(); const toggleColumnMenu = (colName: string, headerRef: HTMLDivElement): ToggleColumnAction => dispatch(actions.toggleColumnMenu(colName, headerRef)); diff --git a/frontend/static/dtale/column/ColumnMenu.tsx b/frontend/static/dtale/column/ColumnMenu.tsx index 083f7df6..5d911b05 100644 --- a/frontend/static/dtale/column/ColumnMenu.tsx +++ b/frontend/static/dtale/column/ColumnMenu.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { GlobalHotKeys } from 'react-hotkeys'; import { withTranslation, WithTranslation } from 'react-i18next'; @@ -10,7 +11,8 @@ import { ActionType, OpenChartAction, OpenFormattingAction, SidePanelAction } fr import * as chartActions from '../../redux/actions/charts'; import * as actions from '../../redux/actions/dtale'; import { buildURLString } from '../../redux/actions/url-utils'; -import { AppState, Popups, PopupType, SidePanelType } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; +import { Popups, PopupType, SidePanelType } from '../../redux/state/AppState'; import { ColumnDef, DataViewerPropagateState } from '../DataViewerState'; import * as gu from '../gridUtils'; import * as menuFuncs from '../menu/dataViewerMenuUtils'; @@ -29,21 +31,52 @@ export interface ColumnMenuProps { backgroundMode?: string; } +const selectResult = createSelector( + [ + selectors.selectDataId, + selectors.selectColumnMenuOpen, + selectors.selectSelectedCol, + selectors.selectSelectedColRef, + selectors.selectIsPreview, + selectors.selectRibbonMenuOpen, + selectors.selectFilteredRanges, + selectors.selectColumnFilters, + selectors.selectOutlierFilters, + selectors.selectSortInfo, + selectors.selectIsArcticDB, + selectors.selectColumnCount, + ], + ( + dataId, + columnMenuOpen, + selectedCol, + selectedColRef, + isPreview, + ribbonMenuOpen, + filteredRanges, + columnFilters, + outlierFilters, + sortInfo, + isArcticDB, + columnCount, + ) => ({ + dataId, + columnMenuOpen, + selectedCol, + selectedColRef, + isPreview, + ribbonMenuOpen, + filteredRanges, + columnFilters, + outlierFilters, + sortInfo, + isArcticDB, + columnCount, + }), +); + const ColumnMenu: React.FC = ({ backgroundMode, columns, propagateState, t }) => { - const reduxState = useSelector((state: AppState) => ({ - dataId: state.dataId, - columnMenuOpen: state.columnMenuOpen, - selectedCol: state.selectedCol, - selectedColRef: state.selectedColRef, - isPreview: state.isPreview, - ribbonMenuOpen: state.ribbonMenuOpen || (state.settings?.lock_header_menu ?? state.lockHeaderMenu), - filteredRanges: state.filteredRanges, - columnFilters: state.settings.columnFilters, - outlierFilters: state.settings.outlierFilters, - sortInfo: state.settings.sortInfo, - isArcticDB: state.isArcticDB, - columnCount: state.columnCount, - })); + const reduxState = useSelector(selectResult); const largeArcticDB = React.useMemo( () => reduxState.isArcticDB!! && (reduxState.isArcticDB >= 1_000_000 || reduxState.columnCount > 100), [reduxState.isArcticDB, reduxState.columnCount], diff --git a/frontend/static/dtale/column/HeatMapOption.tsx b/frontend/static/dtale/column/HeatMapOption.tsx index 6d994af3..77b135c2 100644 --- a/frontend/static/dtale/column/HeatMapOption.tsx +++ b/frontend/static/dtale/column/HeatMapOption.tsx @@ -1,10 +1,12 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { AnyAction } from 'redux'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, InstanceSettings } from '../../redux/state/AppState'; +import { selectSettings } from '../../redux/selectors'; +import { InstanceSettings } from '../../redux/state/AppState'; import { ColumnDef } from '../DataViewerState'; /** Component properties of HeatMapOption */ @@ -13,8 +15,10 @@ interface HeatMapOptionProps { colCfg: ColumnDef; } +const selectResult = createSelector([selectSettings], (settings) => ({ settings })); + const HeatMapOption: React.FC = ({ selectedCol, colCfg, t }) => { - const { settings } = useSelector((state: AppState) => state); + const { settings } = useSelector(selectResult); const dispatch = useDispatch(); const updateSettings = (updatedSettings: Partial): AnyAction => dispatch(settingsActions.updateSettings(updatedSettings) as any as AnyAction); diff --git a/frontend/static/dtale/edited/EditedCellInfo.tsx b/frontend/static/dtale/edited/EditedCellInfo.tsx index c9fc948d..92d716a3 100644 --- a/frontend/static/dtale/edited/EditedCellInfo.tsx +++ b/frontend/static/dtale/edited/EditedCellInfo.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -11,7 +12,8 @@ import { OpenChartAction, } from '../../redux/actions/AppActions'; import * as chartActions from '../../redux/actions/charts'; -import { AppState, BaseOption, Popups } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; +import { BaseOption, Popups } from '../../redux/state/AppState'; import * as ColumnFilterRepository from '../../repository/ColumnFilterRepository'; import { ColumnType, findColType, getCell } from '../gridUtils'; @@ -19,6 +21,31 @@ import { onKeyDown as baseKeyDown, EditedCellInfoProps } from './editUtils'; require('./EditedCellInfo.scss'); +const selectSettingsHideHeaderEditor = createSelector( + [selectors.selectSettings], + (settings) => settings?.hide_header_editor, +); +const selectHideHeaderEditor = createSelector( + [selectors.selectBaseHideHeaderEditor, selectSettingsHideHeaderEditor], + (hideHeaderEditor, settingsHideHeaderEditor) => settingsHideHeaderEditor ?? hideHeaderEditor, +); +const selectResult = createSelector( + [ + selectors.selectDataId, + selectors.selectEditedCell, + selectors.selectSettings, + selectors.selectMaxColumnWidth, + selectHideHeaderEditor, + ], + (dataId, editedCell, settings, maxColumnWidth, hideHeaderEditor) => ({ + dataId, + editedCell, + settings, + maxColumnWidth, + hideHeaderEditor, + }), +); + const EditedCellInfo: React.FC = ({ propagateState, data, @@ -26,13 +53,7 @@ const EditedCellInfo: React.FC = ({ rowCount, t, }) => { - const { dataId, editedCell, settings, maxColumnWidth, hideHeaderEditor } = useSelector((state: AppState) => ({ - dataId: state.dataId, - editedCell: state.editedCell, - settings: state.settings, - maxColumnWidth: state.maxColumnWidth, - hideHeaderEditor: state.settings?.hide_header_editor ?? state.hideHeaderEditor, - })); + const { dataId, editedCell, settings, maxColumnWidth, hideHeaderEditor } = useSelector(selectResult); const dispatch = useDispatch(); const openChart = (chartData: Popups): OpenChartAction => dispatch(chartActions.openChart(chartData)); const clearEdit = (): ClearEditAction => dispatch({ type: ActionType.CLEAR_EDIT }); diff --git a/frontend/static/dtale/export/DataViewerDimensions.tsx b/frontend/static/dtale/export/DataViewerDimensions.tsx index 1a5d3ae3..42e1195b 100644 --- a/frontend/static/dtale/export/DataViewerDimensions.tsx +++ b/frontend/static/dtale/export/DataViewerDimensions.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { useSelector } from 'react-redux'; -import { AppState } from '../../redux/state/AppState'; +import { selectSettings } from '../../redux/selectors'; import { ColumnDef } from '../DataViewerState'; import * as gu from '../gridUtils'; @@ -13,7 +13,7 @@ interface DataViewerDimensionsProps { } export const DataViewerDimensions: React.FC = ({ style, columns, rowCount }) => { - const { settings } = useSelector((state: AppState) => state); + const settings = useSelector(selectSettings); const colCount = React.useMemo( () => gu.getActiveCols(columns, settings.backgroundMode).length, diff --git a/frontend/static/dtale/export/DataViewerInfo.tsx b/frontend/static/dtale/export/DataViewerInfo.tsx index aa766902..eb53caa0 100644 --- a/frontend/static/dtale/export/DataViewerInfo.tsx +++ b/frontend/static/dtale/export/DataViewerInfo.tsx @@ -1,10 +1,12 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { AnyAction } from 'redux'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, InstanceSettings } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; +import { InstanceSettings } from '../../redux/state/AppState'; import { ColumnDef, DataViewerPropagateState } from '../DataViewerState'; import * as gu from '../gridUtils'; import { buildMenuHandler, InfoMenuType } from '../info/infoUtils'; @@ -20,16 +22,29 @@ export interface DataViewerInfoProps { propagateState: DataViewerPropagateState; } +const selectResult = createSelector( + [ + selectors.selectPredefinedFilterConfigs, + selectors.selectInvertFilter, + selectors.selectQuery, + selectors.selectColumnFilters, + selectors.selectPredefinedFilters, + selectors.selectOutlierFilters, + selectors.selectSortInfo, + ], + (predefinedFilterConfigs, invertFilter, query, columnFilters, predefinedFilters, outlierFilters, sortInfo) => ({ + predefinedFilterConfigs, + invertFilter: invertFilter ?? false, + query, + columnFilters: columnFilters ?? {}, + predefinedFilters: predefinedFilters ?? {}, + outlierFilters: outlierFilters ?? {}, + sortInfo, + }), +); + const DataViewerInfo: React.FC = ({ columns, error, propagateState, t }) => { - const reduxState = useSelector((state: AppState) => ({ - predefinedFilterConfigs: state.predefinedFilters, - invertFilter: state.settings.invertFilter ?? false, - query: state.settings.query, - columnFilters: state.settings.columnFilters, - predefinedFilters: state.settings.predefinedFilters, - outlierFilters: state.settings.outlierFilters, - sortInfo: state.settings.sortInfo, - })); + const reduxState = useSelector(selectResult); const dispatch = useDispatch(); const updateSettings = (updatedSettings: Partial): AnyAction => dispatch(settingsActions.updateSettings(updatedSettings) as any as AnyAction); diff --git a/frontend/static/dtale/export/FilterDisplay.tsx b/frontend/static/dtale/export/FilterDisplay.tsx index 100f1e31..7c6eb43b 100644 --- a/frontend/static/dtale/export/FilterDisplay.tsx +++ b/frontend/static/dtale/export/FilterDisplay.tsx @@ -1,8 +1,9 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; import { truncate } from '../../stringUtils'; import { ColumnFilter, OutlierFilter } from '../DataViewerState'; import * as gu from '../gridUtils'; @@ -32,16 +33,29 @@ export interface FilterDisplayProps { setMenuOpen: (menuOpen?: InfoMenuType) => void; } +const selectResult = createSelector( + [ + selectors.selectPredefinedFilterConfigs, + selectors.selectInvertFilter, + selectors.selectQuery, + selectors.selectColumnFilters, + selectors.selectPredefinedFilters, + selectors.selectOutlierFilters, + selectors.selectSortInfo, + ], + (predefinedFilterConfigs, invertFilter, query, columnFilters, predefinedFilters, outlierFilters, sortInfo) => ({ + predefinedFilterConfigs, + invertFilter: invertFilter ?? false, + query, + columnFilters: columnFilters ?? {}, + predefinedFilters: predefinedFilters ?? {}, + outlierFilters: outlierFilters ?? {}, + sortInfo, + }), +); + const FilterDisplay: React.FC = ({ menuOpen, setMenuOpen, t }) => { - const reduxState = useSelector((state: AppState) => ({ - predefinedFilterConfigs: state.predefinedFilters, - hideDropRows: state.hideDropRows, - invertFilter: state.settings.invertFilter ?? false, - query: state.settings.query, - columnFilters: state.settings.columnFilters ?? {}, - predefinedFilters: state.settings.predefinedFilters ?? {}, - outlierFilters: state.settings.outlierFilters ?? {}, - })); + const reduxState = useSelector(selectResult); const filterRef = React.useRef(null); const displayPredefined = (): JSX.Element => ( diff --git a/frontend/static/dtale/export/GridCell.tsx b/frontend/static/dtale/export/GridCell.tsx index c4724ff6..30a41401 100644 --- a/frontend/static/dtale/export/GridCell.tsx +++ b/frontend/static/dtale/export/GridCell.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState } from '../../redux/state/AppState'; +import { selectSettings } from '../../redux/selectors'; import * as bu from '../backgroundUtils'; import { ColumnDef, @@ -40,7 +40,7 @@ const GridCell: React.FC = ({ propagateState, t, }) => { - const { settings } = useSelector((state: AppState) => state); + const settings = useSelector(selectSettings); const colCfg = React.useMemo(() => { return gu.getCol(columnIndex, columns, settings.backgroundMode); @@ -74,7 +74,7 @@ const GridCell: React.FC = ({ let value: React.ReactNode = '-'; // wide strings need to be displayed to the left so they are easier to read let valueStyle: React.CSSProperties = - (style.width ?? 0) > 350 && gu.isStringCol(colCfg?.dtype) ? { textAlign: 'left' } : {}; + (style.width ?? (0 as any)) > 350 && gu.isStringCol(colCfg?.dtype) ? { textAlign: 'left' } : {}; const divProps: React.HTMLAttributes = {}; let className = 'cell'; if (colCfg?.name) { diff --git a/frontend/static/dtale/export/Header.tsx b/frontend/static/dtale/export/Header.tsx index f7d9300e..51b26d56 100644 --- a/frontend/static/dtale/export/Header.tsx +++ b/frontend/static/dtale/export/Header.tsx @@ -5,7 +5,7 @@ import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { ActionType, DragResizeAction, StopResizeAction } from '../../redux/actions/AppActions'; -import { AppState } from '../../redux/state/AppState'; +import { selectSettings } from '../../redux/selectors'; import * as bu from '../backgroundUtils'; import { ColumnDef, DataViewerPropagateState } from '../DataViewerState'; import * as gu from '../gridUtils'; @@ -72,7 +72,7 @@ const Header: React.FC = ({ maxRowHeight, t, }) => { - const { settings } = useSelector((state: AppState) => state); + const settings = useSelector(selectSettings); const dispatch = useDispatch(); const updateDragResize = (x: number): DragResizeAction => dispatch({ type: ActionType.DRAG_RESIZE, x }); const stopDragResize = (): StopResizeAction => dispatch({ type: ActionType.STOP_RESIZE }); diff --git a/frontend/static/dtale/export/ServerlessDataViewer.tsx b/frontend/static/dtale/export/ServerlessDataViewer.tsx index 728ddba5..7b168538 100644 --- a/frontend/static/dtale/export/ServerlessDataViewer.tsx +++ b/frontend/static/dtale/export/ServerlessDataViewer.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { @@ -11,7 +12,7 @@ import { AnyAction } from 'redux'; import { usePrevious } from '../../customHooks'; import * as actions from '../../redux/actions/dtale'; -import { AppState } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; import { DataResponseContent } from '../../repository/DataRepository'; import * as bu from '../backgroundUtils'; import { ColumnDef, DataViewerData, PropagatedState } from '../DataViewerState'; @@ -31,6 +32,38 @@ interface ServerlessDataViewerProps { response: DataResponseContent; } +const selectResult = createSelector( + [ + selectors.selectTheme, + selectors.selectSettings, + selectors.selectMenuPinned, + selectors.selectRibbonMenuOpen, + selectors.selectMaxColumnWidth, + selectors.selectMaxRowHeight, + selectors.selectEditedTextAreaHeight, + selectors.selectVerticalHeaders, + ], + ( + theme, + settings, + menuPinned, + ribbonMenuOpen, + maxColumnWidth, + maxRowHeight, + editedTextAreaHeight, + verticalHeaders, + ) => ({ + theme, + settings, + menuPinned, + ribbonMenuOpen, + maxColumnWidth: maxColumnWidth || undefined, + maxRowHeight: maxRowHeight || undefined, + editedTextAreaHeight, + verticalHeaders: verticalHeaders ?? false, + }), +); + export const ServerlessDataViewer: React.FC = ({ response }) => { const { theme, @@ -41,16 +74,7 @@ export const ServerlessDataViewer: React.FC = ({ resp maxRowHeight, editedTextAreaHeight, verticalHeaders, - } = useSelector((state: AppState) => ({ - theme: state.theme, - settings: state.settings, - menuPinned: state.menuPinned, - ribbonMenuOpen: state.ribbonMenuOpen || (state.settings?.lock_header_menu ?? state.lockHeaderMenu), - maxColumnWidth: state.maxColumnWidth || undefined, - maxRowHeight: state.maxRowHeight || undefined, - editedTextAreaHeight: state.editedTextAreaHeight, - verticalHeaders: state.settings.verticalHeaders ?? false, - })); + } = useSelector(selectResult); const dispatch = useDispatch(); const updateFilteredRanges = (query: string): AnyAction => dispatch(actions.updateFilteredRanges(query) as any as AnyAction); diff --git a/frontend/static/dtale/info/DataViewerInfo.tsx b/frontend/static/dtale/info/DataViewerInfo.tsx index 86bd1854..5a67e6a4 100644 --- a/frontend/static/dtale/info/DataViewerInfo.tsx +++ b/frontend/static/dtale/info/DataViewerInfo.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -6,7 +7,8 @@ import { AnyAction } from 'redux'; import { OpenChartAction } from '../../redux/actions/AppActions'; import * as chartActions from '../../redux/actions/charts'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, InstanceSettings, Popups, PopupType } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; +import { InstanceSettings, Popups, PopupType } from '../../redux/state/AppState'; import { ColumnDef, DataViewerPropagateState } from '../DataViewerState'; import * as gu from '../gridUtils'; import ArcticDBOption from '../menu/ArcticDBOption'; @@ -26,21 +28,55 @@ export interface DataViewerInfoProps { propagateState: DataViewerPropagateState; } +const selectResult = createSelector( + [ + selectors.selectDataId, + selectors.selectPredefinedFilterConfigs, + selectors.selectInvertFilter, + selectors.selectQuery, + selectors.selectColumnFilters, + selectors.selectPredefinedFilters, + selectors.selectOutlierFilters, + selectors.selectSortInfo, + selectors.selectHighlightFilter, + selectors.selectIsArcticDB, + selectors.selectArcticConn, + selectors.selectIsVSCode, + selectors.selectColumnCount, + ], + ( + dataId, + predefinedFilterConfigs, + invertFilter, + query, + columnFilters, + predefinedFilters, + outlierFilters, + sortInfo, + highlightFilter, + isArcticDB, + arcticConn, + isVSCode, + columnCount, + ) => ({ + dataId, + predefinedFilterConfigs, + invertFilter: invertFilter ?? false, + query, + columnFilters: columnFilters ?? {}, + predefinedFilters: predefinedFilters ?? {}, + outlierFilters: outlierFilters ?? {}, + sortInfo, + highlightFilter: highlightFilter ?? false, + isArcticDB, + arcticConn, + isVSCode, + columnCount, + }), +); + const DataViewerInfo: React.FC = ({ columns, error, propagateState, t }) => { - const reduxState = useSelector((state: AppState) => ({ - dataId: state.dataId, - predefinedFilterConfigs: state.predefinedFilters, - invertFilter: state.settings.invertFilter ?? false, - query: state.settings.query, - columnFilters: state.settings.columnFilters, - predefinedFilters: state.settings.predefinedFilters, - outlierFilters: state.settings.outlierFilters, - sortInfo: state.settings.sortInfo, - isArcticDB: state.isArcticDB, - arcticConn: state.arcticConn, - isVSCode: state.isVSCode, - columnCount: state.columnCount, - })); + const reduxState = useSelector(selectResult); const dispatch = useDispatch(); const openChart = (chartData: Popups): OpenChartAction => dispatch(chartActions.openChart(chartData)); const updateSettings = (updatedSettings: Partial): AnyAction => diff --git a/frontend/static/dtale/info/FilterDisplay.tsx b/frontend/static/dtale/info/FilterDisplay.tsx index 79221e47..c60e1c6d 100644 --- a/frontend/static/dtale/info/FilterDisplay.tsx +++ b/frontend/static/dtale/info/FilterDisplay.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -5,7 +6,8 @@ import { AnyAction } from 'redux'; import { ActionType, SidePanelAction } from '../../redux/actions/AppActions'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, InstanceSettings, SidePanelType } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; +import { InstanceSettings, SidePanelType } from '../../redux/state/AppState'; import { truncate } from '../../stringUtils'; import { ColumnFilter, OutlierFilter } from '../DataViewerState'; import * as gu from '../gridUtils'; @@ -19,7 +21,7 @@ export const Queries: React.FC<{ prop: string; filters: Record { - const dataId = useSelector((state: AppState) => state.dataId); + const dataId = useSelector(selectors.selectDataId); const dispatch = useDispatch(); const updateSettings = (updatedSettings: Partial): AnyAction => dispatch(settingsActions.updateSettings(updatedSettings) as any as AnyAction); @@ -56,20 +58,49 @@ export interface FilterDisplayProps { setMenuOpen: (menuOpen?: InfoMenuType) => void; } +const selectResult = createSelector( + [ + selectors.selectDataId, + selectors.selectPredefinedFilterConfigs, + selectors.selectHideDropRows, + selectors.selectInvertFilter, + selectors.selectQuery, + selectors.selectColumnFilters, + selectors.selectPredefinedFilters, + selectors.selectOutlierFilters, + selectors.selectSortInfo, + selectors.selectHighlightFilter, + selectors.selectIsArcticDB, + ], + ( + dataId, + predefinedFilterConfigs, + hideDropRows, + invertFilter, + query, + columnFilters, + predefinedFilters, + outlierFilters, + sortInfo, + highlightFilter, + isArcticDB, + ) => ({ + dataId, + predefinedFilterConfigs, + hideDropRows, + invertFilter: invertFilter ?? false, + query, + columnFilters: columnFilters ?? {}, + predefinedFilters: predefinedFilters ?? {}, + outlierFilters: outlierFilters ?? {}, + sortInfo, + highlightFilter: highlightFilter ?? false, + isArcticDB, + }), +); + const FilterDisplay: React.FC = ({ menuOpen, setMenuOpen, t }) => { - const reduxState = useSelector((state: AppState) => ({ - dataId: state.dataId, - predefinedFilterConfigs: state.predefinedFilters, - hideDropRows: state.hideDropRows, - invertFilter: state.settings.invertFilter ?? false, - query: state.settings.query, - columnFilters: state.settings.columnFilters ?? {}, - predefinedFilters: state.settings.predefinedFilters ?? {}, - outlierFilters: state.settings.outlierFilters ?? {}, - sortInfo: state.settings.sortInfo, - highlightFilter: state.settings.highlightFilter ?? false, - isArcticDB: state.isArcticDB, - })); + const reduxState = useSelector(selectResult); const dispatch = useDispatch(); const updateSettings = (updatedSettings: Partial): AnyAction => dispatch(settingsActions.updateSettings(updatedSettings) as any as AnyAction); diff --git a/frontend/static/dtale/menu/DataViewerMenu.tsx b/frontend/static/dtale/menu/DataViewerMenu.tsx index cead617c..85a9345f 100644 --- a/frontend/static/dtale/menu/DataViewerMenu.tsx +++ b/frontend/static/dtale/menu/DataViewerMenu.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { GlobalHotKeys } from 'react-hotkeys'; import { withTranslation, WithTranslation } from 'react-i18next'; @@ -7,7 +8,8 @@ import { AnyAction } from 'redux'; import { ActionType, OpenChartAction, SidePanelAction, ToggleMenuAction } from '../../redux/actions/AppActions'; import * as chartActions from '../../redux/actions/charts'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, Popups, PopupType, SidePanelType } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; +import { Popups, PopupType, SidePanelType } from '../../redux/state/AppState'; import { ColumnDef, DataViewerPropagateState } from '../DataViewerState'; import * as gu from '../gridUtils'; @@ -57,9 +59,34 @@ export interface DataViewerMenuProps { propagateState: DataViewerPropagateState; } +const selectResult = createSelector( + [ + selectors.selectDataId, + selectors.selectMenuPinned, + selectors.selectMainTitle, + selectors.selectMainTitleFont, + selectors.selectIsArcticDB, + selectors.selectIsVSCode, + selectors.selectSettings, + selectors.selectMenuOpen, + selectors.selectColumnCount, + ], + (dataId, menuPinned, mainTitle, mainTitleFont, isArcticDB, isVSCode, settings, menuOpen, columnCount) => ({ + dataId, + menuPinned, + mainTitle, + mainTitleFont, + isArcticDB, + isVSCode, + settings, + menuOpen, + columnCount, + }), +); + const DataViewerMenu: React.FC = ({ t, columns, rows, propagateState }) => { const { dataId, menuPinned, mainTitle, mainTitleFont, isArcticDB, isVSCode, settings, menuOpen, columnCount } = - useSelector((state: AppState) => state); + useSelector(selectResult); const largeArcticDB = React.useMemo( () => isArcticDB!! && (isArcticDB >= 1_000_000 || columnCount > 100), [isArcticDB, columnCount], diff --git a/frontend/static/dtale/menu/DataViewerMenuHolder.tsx b/frontend/static/dtale/menu/DataViewerMenuHolder.tsx index aa698451..9c70e1ed 100644 --- a/frontend/static/dtale/menu/DataViewerMenuHolder.tsx +++ b/frontend/static/dtale/menu/DataViewerMenuHolder.tsx @@ -1,10 +1,11 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { Bouncer } from '../../Bouncer'; import { openMenu } from '../../menuUtils'; import { ActionType } from '../../redux/actions/AppActions'; -import { AppState } from '../../redux/state/AppState'; +import { selectColumnCount, selectMenuOpen, selectMenuPinned, selectTheme } from '../../redux/selectors'; import { ColumnDef } from '../DataViewerState'; import * as gu from '../gridUtils'; @@ -16,8 +17,13 @@ interface DatViewerMenuHolderProps { rowCount: number; } +const selectResult = createSelector( + [selectTheme, selectMenuPinned, selectMenuOpen, selectColumnCount], + (theme, menuPinned, menuOpen, columnCount) => ({ theme, menuPinned, menuOpen, columnCount }), +); + export const DataViewerMenuHolder: React.FC = ({ loading, style, columns, rowCount }) => { - const { theme, menuPinned, menuOpen, columnCount } = useSelector((state: AppState) => state); + const { theme, menuPinned, menuOpen, columnCount } = useSelector(selectResult); const dispatch = useDispatch(); const menuToggle = React.useRef(null); diff --git a/frontend/static/dtale/menu/HeatMapOption.tsx b/frontend/static/dtale/menu/HeatMapOption.tsx index 03a2afd7..06f72832 100644 --- a/frontend/static/dtale/menu/HeatMapOption.tsx +++ b/frontend/static/dtale/menu/HeatMapOption.tsx @@ -1,8 +1,9 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState } from '../../redux/state/AppState'; +import { selectSettings, selectShowAllHeatmapColumns } from '../../redux/selectors'; import * as gu from '../gridUtils'; import { MenuItem } from './MenuItem'; @@ -12,8 +13,13 @@ export interface HeatMapOptionProps { toggleBackground: (mode: string) => void; } +const selectResult = createSelector( + [selectShowAllHeatmapColumns, selectSettings], + (showAllHeatmapColumns, settings) => ({ showAllHeatmapColumns, settings }), +); + const HeatMapOption: React.FC = ({ toggleBackground, t }) => { - const { showAllHeatmapColumns, settings } = useSelector((state: AppState) => state); + const { showAllHeatmapColumns, settings } = useSelector(selectResult); const heatmapActive = gu.heatmapActive(settings.backgroundMode) || gu.heatmapAllActive(settings.backgroundMode); return ( diff --git a/frontend/static/dtale/menu/HideHeaderEditor.tsx b/frontend/static/dtale/menu/HideHeaderEditor.tsx index 692802c9..b049298c 100644 --- a/frontend/static/dtale/menu/HideHeaderEditor.tsx +++ b/frontend/static/dtale/menu/HideHeaderEditor.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -5,16 +6,18 @@ import { AnyAction } from 'redux'; import { ActionType } from '../../redux/actions/AppActions'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState } from '../../redux/state/AppState'; +import { selectDataId, selectHideHeaderEditor } from '../../redux/selectors'; import * as serverState from '../serverStateManagement'; import { MenuItem } from './MenuItem'; +const selectResult = createSelector([selectDataId, selectHideHeaderEditor], (dataId, hideHeaderEditor) => ({ + dataId, + hideHeaderEditor, +})); + const HideHeaderEditor: React.FC = ({ t }) => { - const { dataId, hideHeaderEditor } = useSelector((state: AppState) => ({ - dataId: state.dataId, - hideHeaderEditor: state.settings?.hide_header_editor ?? state.hideHeaderEditor, - })); + const { dataId, hideHeaderEditor } = useSelector(selectResult); const dispatch = useDispatch(); const setHideHeaderEditor = async (): Promise => { diff --git a/frontend/static/dtale/menu/LanguageOption.tsx b/frontend/static/dtale/menu/LanguageOption.tsx index 53f86669..72cb3e5b 100644 --- a/frontend/static/dtale/menu/LanguageOption.tsx +++ b/frontend/static/dtale/menu/LanguageOption.tsx @@ -3,14 +3,14 @@ import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { ActionType, SetLanguageAction } from '../../redux/actions/AppActions'; -import { AppState } from '../../redux/state/AppState'; +import { selectLanguage } from '../../redux/selectors'; import * as serverState from '../serverStateManagement'; import { MenuItem } from './MenuItem'; import { RibbonOptionProps } from './MenuState'; const LanguageOption: React.FC = ({ ribbonWrapper = (func) => func, t, i18n }) => { - const language = useSelector((state: AppState) => state.language); + const language = useSelector(selectLanguage); const dispatch = useDispatch(); const setLanguage = (updatedLanguage: string): SetLanguageAction => dispatch({ type: ActionType.SET_LANGUAGE, language: updatedLanguage }); diff --git a/frontend/static/dtale/menu/LogoutOption.tsx b/frontend/static/dtale/menu/LogoutOption.tsx index b4cfe58b..07873173 100644 --- a/frontend/static/dtale/menu/LogoutOption.tsx +++ b/frontend/static/dtale/menu/LogoutOption.tsx @@ -1,14 +1,17 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState } from '../../redux/state/AppState'; +import { selectAuth, selectUsername } from '../../redux/selectors'; import { MenuItem } from './MenuItem'; import { MenuOptionProps } from './MenuState'; +const selectResult = createSelector([selectAuth, selectUsername], (auth, username) => ({ auth, username })); + const LogoutOption: React.FC = ({ open, t }) => { - const { auth, username } = useSelector((state: AppState) => ({ auth: state.auth, username: state.username })); + const { auth, username } = useSelector(selectResult); if (auth) { return ( diff --git a/frontend/static/dtale/menu/MaxDimensionOption.tsx b/frontend/static/dtale/menu/MaxDimensionOption.tsx index 9b289033..79c3f053 100644 --- a/frontend/static/dtale/menu/MaxDimensionOption.tsx +++ b/frontend/static/dtale/menu/MaxDimensionOption.tsx @@ -4,7 +4,7 @@ import { useDispatch, useSelector } from 'react-redux'; import { AnyAction } from 'redux'; import * as actions from '../../redux/actions/dtale'; -import { AppState } from '../../redux/state/AppState'; +import { selectMaxColumnWidth, selectMaxRowHeight } from '../../redux/selectors'; import { SingleTrack, StyledSlider, Thumb } from '../../sliderUtils'; import * as serverState from '../serverStateManagement'; @@ -86,10 +86,10 @@ export const MaxDimensionOption: React.FC Thumb(thumbProps, thumbState)} max={1000} value={maxDimension} - onAfterChange={(updatedMaxDimension) => updateMax(updatedMaxDimension as number)} + onAfterChange={(updatedMaxDimension: any) => updateMax(updatedMaxDimension as number)} /> @@ -101,7 +101,7 @@ export const MaxDimensionOption: React.FC { - const maxColumnWidth = useSelector((state: AppState) => state.maxColumnWidth); + const maxColumnWidth = useSelector(selectMaxColumnWidth); const dispatch = useDispatch(); const updateMaxDimension = async (width: number): Promise => { dispatch(actions.updateMaxWidth(width) as any as AnyAction); @@ -124,7 +124,7 @@ export const MaxWidthOption: React.FC = () => { }; export const MaxHeightOption: React.FC = () => { - const maxRowHeight = useSelector((state: AppState) => state.maxRowHeight); + const maxRowHeight = useSelector(selectMaxRowHeight); const dispatch = useDispatch(); const updateMaxDimension = async (height: number): Promise => { dispatch(actions.updateMaxHeight(height) as any as AnyAction); diff --git a/frontend/static/dtale/menu/PPSOption.tsx b/frontend/static/dtale/menu/PPSOption.tsx index 84c14e7d..2690db85 100644 --- a/frontend/static/dtale/menu/PPSOption.tsx +++ b/frontend/static/dtale/menu/PPSOption.tsx @@ -2,13 +2,13 @@ import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState } from '../../redux/state/AppState'; +import { selectPythonVersion } from '../../redux/selectors'; import { MenuItem } from './MenuItem'; import { MenuOptionProps } from './MenuState'; const PPSOption: React.FC = ({ open, t }) => { - const pythonVersion = useSelector((state: AppState) => state.pythonVersion); + const pythonVersion = useSelector(selectPythonVersion); if (!pythonVersion || (pythonVersion[0] >= 3 && pythonVersion[1] >= 6)) { return ( diff --git a/frontend/static/dtale/menu/PinMenuOption.tsx b/frontend/static/dtale/menu/PinMenuOption.tsx index 6b59fb69..01a61dc4 100644 --- a/frontend/static/dtale/menu/PinMenuOption.tsx +++ b/frontend/static/dtale/menu/PinMenuOption.tsx @@ -3,13 +3,13 @@ import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { ActionType, ToggleMenuPinnedAction } from '../../redux/actions/AppActions'; -import { AppState } from '../../redux/state/AppState'; +import { selectMenuPinned } from '../../redux/selectors'; import * as serverState from '../serverStateManagement'; import { MenuItem } from './MenuItem'; const PinMenuOption: React.FC = ({ t }) => { - const menuPinned = useSelector((state: AppState) => state.menuPinned); + const menuPinned = useSelector(selectMenuPinned); const dispatch = useDispatch(); const toggleMenuPinned = (): ToggleMenuPinnedAction => dispatch({ type: ActionType.TOGGLE_MENU_PINNED }); diff --git a/frontend/static/dtale/menu/PredefinedFiltersOption.tsx b/frontend/static/dtale/menu/PredefinedFiltersOption.tsx index 568730a1..25ba9135 100644 --- a/frontend/static/dtale/menu/PredefinedFiltersOption.tsx +++ b/frontend/static/dtale/menu/PredefinedFiltersOption.tsx @@ -2,13 +2,13 @@ import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState } from '../../redux/state/AppState'; +import { selectPredefinedFilterConfigs } from '../../redux/selectors'; import { MenuItem } from './MenuItem'; import { MenuOptionProps } from './MenuState'; const PredefinedFiltersOption: React.FC = ({ open, t }) => { - const predefinedFilters = useSelector((state: AppState) => state.predefinedFilters); + const predefinedFilters = useSelector(selectPredefinedFilterConfigs); if (predefinedFilters.length) { return ( diff --git a/frontend/static/dtale/menu/RangeHighlightOption.tsx b/frontend/static/dtale/menu/RangeHighlightOption.tsx index 218a76d1..8bda8109 100644 --- a/frontend/static/dtale/menu/RangeHighlightOption.tsx +++ b/frontend/static/dtale/menu/RangeHighlightOption.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -7,7 +8,8 @@ import { Bouncer } from '../../Bouncer'; import { OpenChartAction } from '../../redux/actions/AppActions'; import * as chartActions from '../../redux/actions/charts'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, InstanceSettings, Popups, PopupType, RangeHighlightConfig } from '../../redux/state/AppState'; +import { selectBackgroundMode, selectRangeHighlight } from '../../redux/selectors'; +import { InstanceSettings, Popups, PopupType, RangeHighlightConfig } from '../../redux/state/AppState'; import { ColumnDef } from '../DataViewerState'; import { MenuItem } from './MenuItem'; @@ -17,12 +19,18 @@ import { RibbonOptionProps } from './MenuState'; interface RangeHighlightOptionProps extends RibbonOptionProps { columns: ColumnDef[]; } + +const selectResult = createSelector([selectBackgroundMode, selectRangeHighlight], (backgroundMode, rangeHighlight) => ({ + backgroundMode, + rangeHighlight, +})); + const RangeHighlightOption: React.FC = ({ columns, ribbonWrapper = (func) => func, t, }) => { - const { backgroundMode, rangeHighlight } = useSelector((state: AppState) => state.settings); + const { backgroundMode, rangeHighlight } = useSelector(selectResult); const dispatch = useDispatch(); const openChart = (chartData: Popups): OpenChartAction => dispatch(chartActions.openChart(chartData)); const updateSettings = (updatedSettings: Partial): AnyAction => diff --git a/frontend/static/dtale/menu/ShowNonNumericHeatmapColumns.tsx b/frontend/static/dtale/menu/ShowNonNumericHeatmapColumns.tsx index d7a82614..1ca2d82b 100644 --- a/frontend/static/dtale/menu/ShowNonNumericHeatmapColumns.tsx +++ b/frontend/static/dtale/menu/ShowNonNumericHeatmapColumns.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -6,12 +7,17 @@ import { AnyAction } from 'redux'; import { ActionType, HideRibbonMenuAction } from '../../redux/actions/AppActions'; import * as actions from '../../redux/actions/dtale'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState } from '../../redux/state/AppState'; +import { selectSettings, selectShowAllHeatmapColumns } from '../../redux/selectors'; import { MenuItem } from './MenuItem'; +const selectResult = createSelector( + [selectSettings, selectShowAllHeatmapColumns], + (settings, showAllHeatmapColumns) => ({ showAllHeatmapColumns, settings }), +); + const ShowNonNumericHeatmapColumns: React.FC = ({ t }) => { - const { showAllHeatmapColumns, settings } = useSelector((state: AppState) => state); + const { showAllHeatmapColumns, settings } = useSelector(selectResult); const dispatch = useDispatch(); const hideRibbonMenu = (): HideRibbonMenuAction => dispatch({ type: ActionType.HIDE_RIBBON_MENU }); const toggleBackground = (backgroundMode: string): AnyAction => diff --git a/frontend/static/dtale/menu/ShutdownOption.tsx b/frontend/static/dtale/menu/ShutdownOption.tsx index 70c85340..f414a0de 100644 --- a/frontend/static/dtale/menu/ShutdownOption.tsx +++ b/frontend/static/dtale/menu/ShutdownOption.tsx @@ -2,14 +2,13 @@ import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState } from '../../redux/state/AppState'; +import { selectHideShutdown } from '../../redux/selectors'; import { MenuItem } from './MenuItem'; import { MenuOptionProps } from './MenuState'; const ShutdownOption: React.FC = ({ open, t }) => { - const hideShutdown = useSelector((state: AppState) => state.hideShutdown); - + const hideShutdown = useSelector(selectHideShutdown); if (hideShutdown) { return null; } diff --git a/frontend/static/dtale/menu/ThemeOption.tsx b/frontend/static/dtale/menu/ThemeOption.tsx index bd4693e2..7137244a 100644 --- a/frontend/static/dtale/menu/ThemeOption.tsx +++ b/frontend/static/dtale/menu/ThemeOption.tsx @@ -3,7 +3,8 @@ import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { ActionType } from '../../redux/actions/AppActions'; -import { AppState, ThemeType } from '../../redux/state/AppState'; +import { selectTheme } from '../../redux/selectors'; +import { ThemeType } from '../../redux/state/AppState'; import { capitalize } from '../../stringUtils'; import * as serverState from '../serverStateManagement'; @@ -11,7 +12,7 @@ import { MenuItem } from './MenuItem'; import { RibbonOptionProps } from './MenuState'; const ReactThemeOption: React.FC = ({ ribbonWrapper = (func) => func, t }) => { - const theme = useSelector((state: AppState) => state.theme); + const theme = useSelector(selectTheme); const dispatch = useDispatch(); const updateTheme = (newTheme: ThemeType) => async () => { await serverState.updateTheme(newTheme); diff --git a/frontend/static/dtale/menu/VerticalColumnHeaders.tsx b/frontend/static/dtale/menu/VerticalColumnHeaders.tsx index ff4b8702..ae5354f1 100644 --- a/frontend/static/dtale/menu/VerticalColumnHeaders.tsx +++ b/frontend/static/dtale/menu/VerticalColumnHeaders.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -5,16 +6,18 @@ import { AnyAction } from 'redux'; import { ActionType } from '../../redux/actions/AppActions'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState } from '../../redux/state/AppState'; +import { selectDataId, selectVerticalHeaders } from '../../redux/selectors'; import * as serverState from '../serverStateManagement'; import { MenuItem } from './MenuItem'; +const selectResult = createSelector([selectDataId, selectVerticalHeaders], (dataId, verticalHeaders) => ({ + dataId, + verticalHeaders: verticalHeaders ?? false, +})); + const VerticalColumnHeaders: React.FC = ({ t }) => { - const { dataId, verticalHeaders } = useSelector((state: AppState) => ({ - dataId: state.dataId, - verticalHeaders: state.settings?.verticalHeaders ?? false, - })); + const { dataId, verticalHeaders } = useSelector(selectResult); const dispatch = useDispatch(); const setVerticalHeaders = async (): Promise => { diff --git a/frontend/static/dtale/menu/XArrayOption.tsx b/frontend/static/dtale/menu/XArrayOption.tsx index 359b6f01..aea197c1 100644 --- a/frontend/static/dtale/menu/XArrayOption.tsx +++ b/frontend/static/dtale/menu/XArrayOption.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import { TFunction } from 'i18next'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; @@ -5,7 +6,8 @@ import { useDispatch, useSelector } from 'react-redux'; import { OpenChartAction } from '../../redux/actions/AppActions'; import * as chartActions from '../../redux/actions/charts'; -import { AppState, PopupType } from '../../redux/state/AppState'; +import { selectXArray, selectXArrayDim } from '../../redux/selectors'; +import { PopupType } from '../../redux/state/AppState'; import { ColumnDef } from '../DataViewerState'; import { MenuItem } from './MenuItem'; @@ -24,11 +26,10 @@ interface XArrayOptionProps { columns: ColumnDef[]; } +const selectResult = createSelector([selectXArray, selectXArrayDim], (xarray, xarrayDim) => ({ xarray, xarrayDim })); + const XArrayOption: React.FC = ({ columns, t }) => { - const { xarray, xarrayDim } = useSelector((state: AppState) => ({ - xarray: state.xarray, - xarrayDim: state.xarrayDim, - })); + const { xarray, xarrayDim } = useSelector(selectResult); const dispatch = useDispatch(); const openXArrayPopup = (type: PopupType.XARRAY_DIMENSIONS | PopupType.XARRAY_INDEXES): OpenChartAction => dispatch(chartActions.openChart({ type, columns, visible: true })); diff --git a/frontend/static/dtale/menu/dataViewerMenuUtils.tsx b/frontend/static/dtale/menu/dataViewerMenuUtils.tsx index 331db50b..355a78da 100644 --- a/frontend/static/dtale/menu/dataViewerMenuUtils.tsx +++ b/frontend/static/dtale/menu/dataViewerMenuUtils.tsx @@ -39,7 +39,7 @@ export const buildStyling = ( switch (colType) { case ColumnType.FLOAT: case ColumnType.INT: - style.color = val < 0 ? 'red' : ''; + style.color = (val as any) < 0 ? 'red' : ''; break; default: break; diff --git a/frontend/static/dtale/ribbon/DataMenuItem.tsx b/frontend/static/dtale/ribbon/DataMenuItem.tsx index 65c0874b..d96616c2 100644 --- a/frontend/static/dtale/ribbon/DataMenuItem.tsx +++ b/frontend/static/dtale/ribbon/DataMenuItem.tsx @@ -8,7 +8,7 @@ import { HideRibbonMenuAction, ShowMenuTooltipAction, } from '../../redux/actions/AppActions'; -import { AppState } from '../../redux/state/AppState'; +import { selectIFrame } from '../../redux/selectors'; /** Component properties for DataMenuItem */ export interface DataMenuItemProps { @@ -18,7 +18,7 @@ export interface DataMenuItemProps { } const DataMenuItem: React.FC = ({ id, name, cleanup, t }) => { - const iframe = useSelector((state: AppState) => state.iframe); + const iframe = useSelector(selectIFrame); const dispatch = useDispatch(); const showTooltip = (element: HTMLLIElement, content: React.ReactNode): ShowMenuTooltipAction => dispatch({ type: ActionType.SHOW_MENU_TOOLTIP, element, content }); diff --git a/frontend/static/dtale/ribbon/RibbonDropdown.tsx b/frontend/static/dtale/ribbon/RibbonDropdown.tsx index a24518d0..6207a16d 100644 --- a/frontend/static/dtale/ribbon/RibbonDropdown.tsx +++ b/frontend/static/dtale/ribbon/RibbonDropdown.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -12,7 +13,8 @@ import { } from '../../redux/actions/AppActions'; import * as chartActions from '../../redux/actions/charts'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, Popups, PopupType, RibbonDropdownType, SidePanelType } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; +import { Popups, PopupType, RibbonDropdownType, SidePanelType } from '../../redux/state/AppState'; import * as InstanceRepository from '../../repository/InstanceRepository'; import { ColumnDef, DataViewerPropagateState } from '../DataViewerState'; import * as gu from '../gridUtils'; @@ -87,17 +89,31 @@ export interface RibbonDropdownProps { propagateState: DataViewerPropagateState; } +const selectResult = createSelector( + [ + selectors.selectDataId, + selectors.selectIsVSCode, + selectors.selectSettings, + selectors.selectIsArcticDB, + selectors.selectColumnCount, + selectors.selectRibbonDropdownVisible, + selectors.selectRibbonDropdownElement, + selectors.selectRibbonDropdownName, + ], + (dataId, isVSCode, settings, isArcticDB, columnCount, visible, element, name) => ({ + dataId, + isVSCode, + settings, + isArcticDB, + columnCount, + visible, + element, + name, + }), +); + const RibbonDropdown: React.FC = ({ columns, rows, propagateState, t }) => { - const { dataId, isVSCode, element, name, settings, visible, isArcticDB, columnCount } = useSelector( - (state: AppState) => ({ - ...state.ribbonDropdown, - dataId: state.dataId, - isVSCode: state.isVSCode, - settings: state.settings, - isArcticDB: state.isArcticDB, - columnCount: state.columnCount, - }), - ); + const { dataId, isVSCode, element, name, settings, visible, isArcticDB, columnCount } = useSelector(selectResult); const largeArcticDB = React.useMemo( () => isArcticDB!! && (isArcticDB >= 1_000_000 || columnCount > 100), [isArcticDB, columnCount], diff --git a/frontend/static/dtale/ribbon/RibbonMenu.tsx b/frontend/static/dtale/ribbon/RibbonMenu.tsx index 16de8ac7..0bd76218 100644 --- a/frontend/static/dtale/ribbon/RibbonMenu.tsx +++ b/frontend/static/dtale/ribbon/RibbonMenu.tsx @@ -1,9 +1,16 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { ActionType, OpenRibbonDropdownAction } from '../../redux/actions/AppActions'; -import { AppState, RibbonDropdownType } from '../../redux/state/AppState'; +import { + selectMainTitle, + selectMainTitleFont, + selectRibbonDropdownName, + selectRibbonMenuOpen, +} from '../../redux/selectors'; +import { RibbonDropdownType } from '../../redux/state/AppState'; require('./RibbonMenu.scss'); @@ -37,15 +44,13 @@ export const RibbonMenuItem: React.FC ({ visible, ribbonDropdown, mainTitle, mainTitleFont }), +); + const RibbonMenu: React.FC = ({ t }) => { - const { visible, ribbonDropdown, mainTitle, mainTitleFont } = useSelector((state: AppState) => { - return { - visible: state.ribbonMenuOpen || (state.settings?.lock_header_menu ?? state.lockHeaderMenu), - ribbonDropdown: state.ribbonDropdown.name, - mainTitle: state.mainTitle, - mainTitleFont: state.mainTitleFont, - }; - }); + const { visible, ribbonDropdown, mainTitle, mainTitleFont } = useSelector(selectResult); const titleStyle: React.CSSProperties = React.useMemo( () => ({ fontSize: '16px', cursor: 'default', ...(mainTitleFont ? { fontFamily: mainTitleFont } : {}) }), [mainTitleFont], diff --git a/frontend/static/dtale/side/CorrelationAnalysis.tsx b/frontend/static/dtale/side/CorrelationAnalysis.tsx index 47a1e5fd..ed37d55a 100644 --- a/frontend/static/dtale/side/CorrelationAnalysis.tsx +++ b/frontend/static/dtale/side/CorrelationAnalysis.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import numeral from 'numeral'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; @@ -22,7 +23,8 @@ import { OpenChartAction, } from '../../redux/actions/AppActions'; import * as chartActions from '../../redux/actions/charts'; -import { AppState, DataViewerUpdateType, Popups, PopupType, SortDef } from '../../redux/state/AppState'; +import { selectDataId, selectIsArcticDB } from '../../redux/selectors'; +import { DataViewerUpdateType, Popups, PopupType, SortDef } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as CorrelationsRepository from '../../repository/CorrelationsRepository'; import { StyledSlider, Thumb, Track } from '../../sliderUtils'; @@ -52,8 +54,10 @@ const buildData = ( corrs: Object.values(corrs[row.column] ?? {}).filter((corr) => corr !== null && corr > threshold).length, })); +const selectResult = createSelector([selectDataId, selectIsArcticDB], (dataId, isArcticDB) => ({ dataId, isArcticDB })); + const CorrelationAnalysis: React.FC = ({ t }) => { - const { dataId, isArcticDB } = useSelector((state: AppState) => state); + const { dataId, isArcticDB } = useSelector(selectResult); const dispatch = useDispatch(); const openChart = (chartData: Popups): OpenChartAction => dispatch(chartActions.openChart(chartData)); const reduxDropColumns = (columns: string[]): DataViewerUpdateAction => @@ -160,12 +164,12 @@ const CorrelationAnalysis: React.FC = ({ t }) => {
Thumb(props, state)} value={threshold} min={0.0} max={1.0} step={0.01} - onAfterChange={(value) => updateThreshold(value as number)} + onAfterChange={(value: any) => updateThreshold(value as number)} />
{!isArcticDB && hasUnselected && ( diff --git a/frontend/static/dtale/side/DescribePanel.tsx b/frontend/static/dtale/side/DescribePanel.tsx index a135955a..e2fa1b34 100644 --- a/frontend/static/dtale/side/DescribePanel.tsx +++ b/frontend/static/dtale/side/DescribePanel.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -8,7 +9,13 @@ import { ColumnNavigation } from '../../popups/describe/ColumnNavigation'; import Details from '../../popups/describe/Details'; import DtypesGrid from '../../popups/describe/DtypesGrid'; import { ActionType, DataViewerUpdateAction } from '../../redux/actions/AppActions'; -import { AppState, DataViewerUpdateType, SidePanelType } from '../../redux/state/AppState'; +import { + selectDataId, + selectSidePanelColumn, + selectSidePanelView, + selectSidePanelVisible, +} from '../../redux/selectors'; +import { DataViewerUpdateType, SidePanelType } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DtypesRepository from '../../repository/DtypesRepository'; import { ColumnDef } from '../DataViewerState'; @@ -16,11 +23,13 @@ import * as serverState from '../serverStateManagement'; import SidePanelButtons from './SidePanelButtons'; +const selectResult = createSelector( + [selectDataId, selectSidePanelVisible, selectSidePanelView, selectSidePanelColumn], + (dataId, visible, view, column) => ({ dataId, visible, view, column }), +); + const DescribePanel: React.FC = ({ t }) => { - const { dataId, visible, view, column } = useSelector((state: AppState) => ({ - ...state.sidePanel, - dataId: state.dataId, - })); + const { dataId, visible, view, column } = useSelector(selectResult); const prevColumn = usePrevious(column); const dispatch = useDispatch(); const toggleVisible = (columns: Record): DataViewerUpdateAction => diff --git a/frontend/static/dtale/side/GageRnR.tsx b/frontend/static/dtale/side/GageRnR.tsx index fbb80217..a699bc3d 100644 --- a/frontend/static/dtale/side/GageRnR.tsx +++ b/frontend/static/dtale/side/GageRnR.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -14,7 +15,8 @@ import { BouncerWrapper } from '../../BouncerWrapper'; import ColumnSelect from '../../popups/create/ColumnSelect'; import FilterableToggle from '../../popups/FilterableToggle'; import { ActionType, HideSidePanelAction } from '../../redux/actions/AppActions'; -import { AppState, BaseOption } from '../../redux/state/AppState'; +import { selectDataId, selectSettings } from '../../redux/selectors'; +import { BaseOption } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DtypesRepository from '../../repository/DtypesRepository'; import * as GageRnRRepository from '../../repository/GageRnRRepository'; @@ -34,8 +36,10 @@ interface GageRnrState { filtered: boolean; } +const selectResult = createSelector([selectDataId, selectSettings], (dataId, settings) => ({ dataId, settings })); + const GageRnR: React.FC = ({ t }) => { - const { dataId, settings } = useSelector((state: AppState) => ({ dataId: state.dataId, settings: state.settings })); + const { dataId, settings } = useSelector(selectResult); const dispatch = useDispatch(); const hideSidePanel = (): HideSidePanelAction => dispatch({ type: ActionType.HIDE_SIDE_PANEL }); const hasFilters = React.useMemo(() => !gu.noFilters(settings), [settings]); diff --git a/frontend/static/dtale/side/MissingNoCharts.tsx b/frontend/static/dtale/side/MissingNoCharts.tsx index d02b7797..5f1f1a93 100644 --- a/frontend/static/dtale/side/MissingNoCharts.tsx +++ b/frontend/static/dtale/side/MissingNoCharts.tsx @@ -8,7 +8,8 @@ import FilterSelect from '../../popups/analysis/filters/FilterSelect'; import ColumnSelect from '../../popups/create/ColumnSelect'; import { ActionType, HideSidePanelAction } from '../../redux/actions/AppActions'; import { buildURLString } from '../../redux/actions/url-utils'; -import { AppState, BaseOption } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; +import { BaseOption } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DtypesRepository from '../../repository/DtypesRepository'; import { capitalize } from '../../stringUtils'; @@ -52,7 +53,7 @@ const FREQS = [ ]; const MissingNoCharts: React.FC = ({ t }) => { - const dataId = useSelector((state: AppState) => state.dataId); + const dataId = useSelector(selectDataId); const dispatch = useDispatch(); const hideSidePanel = (): HideSidePanelAction => dispatch({ type: ActionType.HIDE_SIDE_PANEL }); diff --git a/frontend/static/dtale/side/SidePanel.tsx b/frontend/static/dtale/side/SidePanel.tsx index 3b6eac92..4c290207 100644 --- a/frontend/static/dtale/side/SidePanel.tsx +++ b/frontend/static/dtale/side/SidePanel.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import Draggable from 'react-draggable'; import { GlobalHotKeys } from 'react-hotkeys'; @@ -8,7 +9,8 @@ import FilterPanel from '../../popups/filter/FilterPanel'; import PredictivePowerScore from '../../popups/pps/PredictivePowerScore'; import Reports from '../../popups/timeseries/Reports'; import { ActionType, HideSidePanelAction, SidePanelAction } from '../../redux/actions/AppActions'; -import { AppState, SidePanelType } from '../../redux/state/AppState'; +import { selectSidePanelView, selectSidePanelVisible } from '../../redux/selectors'; +import { SidePanelType } from '../../redux/state/AppState'; import CorrelationAnalysis from './CorrelationAnalysis'; import DescribePanel from './DescribePanel'; @@ -24,8 +26,13 @@ interface SidePanelProps { gridPanel: HTMLDivElement | null; } +const selectResult = createSelector([selectSidePanelVisible, selectSidePanelView], (visible, view) => ({ + visible, + view, +})); + export const SidePanel: React.FC = ({ gridPanel }) => { - const { visible, view } = useSelector((state: AppState) => ({ dataId: state.dataId, ...state.sidePanel })); + const { visible, view } = useSelector(selectResult); const dispatch = useDispatch(); const hideSidePanel = (): HideSidePanelAction => dispatch({ type: ActionType.HIDE_SIDE_PANEL }); const updatePanelWidth = (offsetUpdate?: number): SidePanelAction => diff --git a/frontend/static/dtale/side/SidePanelButtons.tsx b/frontend/static/dtale/side/SidePanelButtons.tsx index 2d5ffb22..5219cd1f 100644 --- a/frontend/static/dtale/side/SidePanelButtons.tsx +++ b/frontend/static/dtale/side/SidePanelButtons.tsx @@ -1,10 +1,12 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { ActionType, HideSidePanelAction } from '../../redux/actions/AppActions'; import { buildURLString } from '../../redux/actions/url-utils'; -import { AppState, SidePanelType } from '../../redux/state/AppState'; +import * as selectors from '../../redux/selectors'; +import { SidePanelType } from '../../redux/state/AppState'; import * as menuFuncs from '../menu/dataViewerMenuUtils'; /** Component properties for SidePanelButtons */ @@ -12,11 +14,18 @@ interface SidePanelButtonsProps { buttons?: React.ReactNode; } +const selectResult = createSelector( + [ + selectors.selectDataId, + selectors.selectSidePanelColumn, + selectors.selectSidePanelVisible, + selectors.selectSidePanelView, + ], + (dataId, column, visible, view) => ({ dataId, column, visible, view }), +); + const SidePanelButtons: React.FC = ({ buttons, t }) => { - const { dataId, column, visible, view } = useSelector((state: AppState) => ({ - dataId: state.dataId, - ...state.sidePanel, - })); + const { dataId, column, visible, view } = useSelector(selectResult); const dispatch = useDispatch(); const hideSidePanel = (): HideSidePanelAction => dispatch({ type: ActionType.HIDE_SIDE_PANEL }); diff --git a/frontend/static/dtale/side/predefined_filters/Panel.tsx b/frontend/static/dtale/side/predefined_filters/Panel.tsx index 4de53004..2b2e57c9 100644 --- a/frontend/static/dtale/side/predefined_filters/Panel.tsx +++ b/frontend/static/dtale/side/predefined_filters/Panel.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -6,7 +7,8 @@ import { AnyAction } from 'redux'; import { ColumnDef } from '../../../dtale/DataViewerState'; import { ActionType, HideSidePanelAction } from '../../../redux/actions/AppActions'; import * as settingsActions from '../../../redux/actions/settings'; -import { AppState, InstanceSettings, PredefinedFilter } from '../../../redux/state/AppState'; +import { selectDataId, selectPredefinedFilterConfigs, selectPredefinedFilters } from '../../../redux/selectors'; +import { InstanceSettings, PredefinedFilter } from '../../../redux/state/AppState'; import { RemovableError } from '../../../RemovableError'; import * as DtypesRepository from '../../../repository/DtypesRepository'; import * as serverState from '../../serverStateManagement'; @@ -18,12 +20,13 @@ require('./Panel.css'); const filterFilters = (filters: PredefinedFilter[], columns: ColumnDef[]): PredefinedFilter[] => filters.filter((f) => columns.find((col) => col.name === f.column) !== undefined); +const selectResult = createSelector( + [selectDataId, selectPredefinedFilterConfigs, selectPredefinedFilters], + (dataId, predefinedFilters, filterValues) => ({ dataId, predefinedFilters, filterValues }), +); + const Panel: React.FC = ({ t }) => { - const { dataId, predefinedFilters, filterValues } = useSelector((state: AppState) => ({ - dataId: state.dataId, - predefinedFilters: state.predefinedFilters, - filterValues: state.settings.predefinedFilters, - })); + const { dataId, predefinedFilters, filterValues } = useSelector(selectResult); const dispatch = useDispatch(); const hideSidePanel = (): HideSidePanelAction => dispatch({ type: ActionType.HIDE_SIDE_PANEL }); const updateSettings = (updatedSettings: Partial): AnyAction => diff --git a/frontend/static/filters/ColumnFilter.css b/frontend/static/filters/ColumnFilter.css index e6f161e1..0b57776c 100644 --- a/frontend/static/filters/ColumnFilter.css +++ b/frontend/static/filters/ColumnFilter.css @@ -19,18 +19,18 @@ .column-filter .Select__control--is-disabled { background-color: rgba(128, 128, 128, 0.3); } -.column-filter span.bp4-popover-wrapper, -.column-filter div.bp4-input-group { +.column-filter span.bp5-popover-wrapper, +.column-filter div.bp5-input-group { width: 5.7em; padding: 0; } -.column-filter input.bp4-input { +.column-filter input.bp5-input { height: 20px; line-height: 20px; font-size: 12px; } -.column-filter .bp4-icon-double-caret-vertical { +.column-filter .bp5-icon-double-caret-vertical { margin-top: -5px; } diff --git a/frontend/static/filters/ColumnFilter.tsx b/frontend/static/filters/ColumnFilter.tsx index 6a60baa5..f13d39b3 100644 --- a/frontend/static/filters/ColumnFilter.tsx +++ b/frontend/static/filters/ColumnFilter.tsx @@ -10,7 +10,8 @@ import * as menuFuncs from '../dtale/menu/dataViewerMenuUtils'; import { OpenChartAction } from '../redux/actions/AppActions'; import * as chartActions from '../redux/actions/charts'; import * as settingsActions from '../redux/actions/settings'; -import { AppState, InstanceSettings, Popups, PopupType } from '../redux/state/AppState'; +import { selectDataId } from '../redux/selectors'; +import { InstanceSettings, Popups, PopupType } from '../redux/state/AppState'; import * as ColumnFilterRepository from '../repository/ColumnFilterRepository'; import DateFilter from './DateFilter'; @@ -51,7 +52,7 @@ export const ColumnFilter: React.FC = ({ t, ...props }) => { - const dataId = useSelector((state: AppState) => state.dataId); + const dataId = useSelector(selectDataId); const dispatch = useDispatch(); const updateSettings = (updatedSettings: Partial): AnyAction => dispatch(settingsActions.updateSettings(updatedSettings) as any as AnyAction); diff --git a/frontend/static/filters/DateFilter.tsx b/frontend/static/filters/DateFilter.tsx index a2719a6d..78efebaf 100644 --- a/frontend/static/filters/DateFilter.tsx +++ b/frontend/static/filters/DateFilter.tsx @@ -1,4 +1,4 @@ -import { DateInput2 } from '@blueprintjs/datetime2'; +import { DateInput } from '@blueprintjs/datetime'; import moment from 'moment'; import React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; @@ -8,8 +8,6 @@ import { BaseColumnFilterProps } from './ColumnFilterState'; import '@blueprintjs/icons/lib/css/blueprint-icons.css'; import '@blueprintjs/core/lib/css/blueprint.css'; import '@blueprintjs/datetime/lib/css/blueprint-datetime.css'; -import '@blueprintjs/datetime2/lib/css/blueprint-datetime2.css'; -import '@blueprintjs/popover2/lib/css/blueprint-popover2.css'; import '@blueprintjs/select/lib/css/blueprint-select.css'; /** Component properties for DateFilter */ @@ -71,7 +69,7 @@ export const DateFilter: React.FC = ({ onChange: (newDate: string | null, isUserChange: boolean) => void, inputRef: React.Ref, ): React.ReactNode => ( - ({ dataId, isArcticDB, columnCount }), +); + export const NumericFilter: React.FC = ({ selectedCol, columnFilter, @@ -51,7 +57,7 @@ export const NumericFilter: React.FC = ({ max, t, }) => { - const { dataId, isArcticDB, columnCount } = useSelector((state: AppState) => state); + const { dataId, isArcticDB, columnCount } = useSelector(selectResult); const largeArcticDB = React.useMemo( () => isArcticDB!! && (isArcticDB >= 1_000_000 || columnCount > 100), [isArcticDB, columnCount], diff --git a/frontend/static/filters/StringFilter.tsx b/frontend/static/filters/StringFilter.tsx index 2d1fc294..605cd9d5 100644 --- a/frontend/static/filters/StringFilter.tsx +++ b/frontend/static/filters/StringFilter.tsx @@ -1,10 +1,11 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { createFilter, default as Select } from 'react-select'; import { ColumnFilter, ColumnFilterOperand } from '../dtale/DataViewerState'; -import { AppState } from '../redux/state/AppState'; +import { selectColumnCount, selectDataId, selectIsArcticDB } from '../redux/selectors'; import AsyncValueSelect from './AsyncValueSelect'; import { BaseColumnFilterProps, UniquesProps } from './ColumnFilterState'; @@ -24,6 +25,11 @@ enum StringFilterAction { /** Component properties for StringFilter */ export type StringFilterProps = BaseColumnFilterProps & UniquesProps; +const selectResult = createSelector( + [selectDataId, selectIsArcticDB, selectColumnCount], + (dataId, isArcticDB, columnCount) => ({ dataId, isArcticDB, columnCount }), +); + export const StringFilter: React.FC = ({ selectedCol, columnFilter, @@ -33,7 +39,7 @@ export const StringFilter: React.FC = ({ uniqueCt, t, }) => { - const { dataId, isArcticDB, columnCount } = useSelector((state: AppState) => state); + const { dataId, isArcticDB, columnCount } = useSelector(selectResult); const largeArcticDB = React.useMemo( () => isArcticDB!! && (isArcticDB >= 1_000_000 || columnCount > 100), [isArcticDB, columnCount], diff --git a/frontend/static/network/NetworkAnalysis.tsx b/frontend/static/network/NetworkAnalysis.tsx index faf89983..07a40f7e 100644 --- a/frontend/static/network/NetworkAnalysis.tsx +++ b/frontend/static/network/NetworkAnalysis.tsx @@ -5,7 +5,7 @@ import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../BouncerWrapper'; import Collapsible from '../Collapsible'; -import { AppState } from '../redux/state/AppState'; +import { selectDataId } from '../redux/selectors'; import { RemovableError } from '../RemovableError'; import * as NetworkRespository from '../repository/NetworkRespository'; @@ -66,7 +66,7 @@ const buildParams = ( }); const NetworkAnalysis: React.FC = ({ to, from, weight, t }) => { - const dataId = useSelector((state: AppState) => state.dataId); + const dataId = useSelector(selectDataId); const [loading, setLoading] = React.useState(false); const [analysis, setAnalysis] = React.useState(); const [error, setError] = React.useState(); diff --git a/frontend/static/network/ShortestPath.tsx b/frontend/static/network/ShortestPath.tsx index 5070d755..4e6dc01d 100644 --- a/frontend/static/network/ShortestPath.tsx +++ b/frontend/static/network/ShortestPath.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState } from '../redux/state/AppState'; +import { selectDataId } from '../redux/selectors'; import { RemovableError } from '../RemovableError'; import * as NetworkRepository from '../repository/NetworkRespository'; @@ -27,7 +27,7 @@ const ShortestPath: React.FC = ({ clearPath, t, }) => { - const dataId = useSelector((state: AppState) => state.dataId); + const dataId = useSelector(selectDataId); const [shortestPath, setShortestPath] = React.useState(); const [error, setError] = React.useState(); const [start, setStart] = React.useState(); diff --git a/frontend/static/popups/CodeExport.tsx b/frontend/static/popups/CodeExport.tsx index ccfd0505..48b0ebc6 100644 --- a/frontend/static/popups/CodeExport.tsx +++ b/frontend/static/popups/CodeExport.tsx @@ -1,14 +1,14 @@ import * as React from 'react'; import { useSelector } from 'react-redux'; -import { AppState } from '../redux/state/AppState'; +import { selectDataId } from '../redux/selectors'; import { RemovableError } from '../RemovableError'; import * as CodeExportRepository from '../repository/CodeExportRepository'; import CodePopup from './CodePopup'; export const CodeExport: React.FC = () => { - const dataId = useSelector((state: AppState) => state.dataId); + const dataId = useSelector(selectDataId); const [error, setError] = React.useState(); const [code, setCode] = React.useState(); diff --git a/frontend/static/popups/Confirmation.tsx b/frontend/static/popups/Confirmation.tsx index 6ff4a243..5410fa52 100644 --- a/frontend/static/popups/Confirmation.tsx +++ b/frontend/static/popups/Confirmation.tsx @@ -4,16 +4,17 @@ import { useDispatch, useSelector } from 'react-redux'; import { CloseChartAction } from '../redux/actions/AppActions'; import { closeChart } from '../redux/actions/charts'; -import { AppState, ConfirmationPopupData } from '../redux/state/AppState'; +import { selectChartData } from '../redux/selectors'; +import { ConfirmationPopupData } from '../redux/state/AppState'; require('./Confirmation.css'); const Confirmation: React.FC = ({ t }) => { - const chartData = useSelector((state: AppState) => state.chartData); + const chartData = useSelector(selectChartData); const dispatch = useDispatch(); const { msg, yesAction } = chartData as ConfirmationPopupData; - const onClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const onClose = (): CloseChartAction => dispatch(closeChart()); const fullYesAction = (): void => { yesAction?.(); onClose(); diff --git a/frontend/static/popups/CopyRangeToClipboard.tsx b/frontend/static/popups/CopyRangeToClipboard.tsx index a20b4513..069fd3a6 100644 --- a/frontend/static/popups/CopyRangeToClipboard.tsx +++ b/frontend/static/popups/CopyRangeToClipboard.tsx @@ -3,18 +3,19 @@ import { useDispatch, useSelector } from 'react-redux'; import { ActionType, CloseChartAction } from '../redux/actions/AppActions'; import { closeChart } from '../redux/actions/charts'; -import { AppState, CopyRangeToClipboardPopupData } from '../redux/state/AppState'; +import { selectChartData } from '../redux/selectors'; +import { CopyRangeToClipboardPopupData } from '../redux/state/AppState'; require('./Confirmation.css'); export const CopyRangeToClipboard: React.FC = () => { - const chartData = useSelector((state: AppState) => state.chartData) as CopyRangeToClipboardPopupData; + const chartData = useSelector(selectChartData) as CopyRangeToClipboardPopupData; const dispatch = useDispatch(); const [includeHeaders, setIncludeHeaders] = React.useState(false); const [finalText, setFinalText] = React.useState(chartData.text); const textArea = React.useRef(null); - const outerOnClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const outerOnClose = (): CloseChartAction => dispatch(closeChart()); React.useEffect(() => { const { text, headers } = chartData; diff --git a/frontend/static/popups/ErrorPopup.tsx b/frontend/static/popups/ErrorPopup.tsx index 711fe354..9a3eeece 100644 --- a/frontend/static/popups/ErrorPopup.tsx +++ b/frontend/static/popups/ErrorPopup.tsx @@ -1,12 +1,12 @@ import * as React from 'react'; import { useSelector } from 'react-redux'; -import { AppState, ErrorPopupData } from '../redux/state/AppState'; +import { selectChartData } from '../redux/selectors'; +import { ErrorPopupData } from '../redux/state/AppState'; import { RemovableError } from '../RemovableError'; export const Error: React.FC = () => { - const chartData = useSelector((state: AppState) => state.chartData) as ErrorPopupData; - + const chartData = useSelector(selectChartData) as ErrorPopupData; return (
diff --git a/frontend/static/popups/Export.tsx b/frontend/static/popups/Export.tsx index a68afbc4..c49d0db0 100644 --- a/frontend/static/popups/Export.tsx +++ b/frontend/static/popups/Export.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -7,7 +8,8 @@ import { fullPath } from '../dtale/menu/dataViewerMenuUtils'; import { CloseChartAction } from '../redux/actions/AppActions'; import { closeChart } from '../redux/actions/charts'; import { buildURL } from '../redux/actions/url-utils'; -import { AppState, ExportPopupData } from '../redux/state/AppState'; +import { selectChartData, selectDataId, selectSettings } from '../redux/selectors'; +import { ExportPopupData } from '../redux/state/AppState'; import { ENDPOINT as DATA_ENDPOINT } from '../repository/DataRepository'; import { ExportThumb, SingleTrack, StyledSlider } from '../sliderUtils'; @@ -23,14 +25,16 @@ enum HTMLExportType { HTML = 'html', } +const selectResult = createSelector([selectDataId, selectChartData, selectSettings], (dataId, chartData, settings) => ({ + dataId, + chartData: chartData as ExportPopupData, + settings, +})); + const Export: React.FC = ({ t }) => { - const { dataId, chartData, settings } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as ExportPopupData, - settings: state.settings, - })); + const { dataId, chartData, settings } = useSelector(selectResult); const dispatch = useDispatch(); - const onClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const onClose = (): CloseChartAction => dispatch(closeChart()); const exportFile = (exportType: ExportType): void => { window.open(`${fullPath('/dtale/data-export', dataId)}?type=${exportType}&_id=${new Date().getTime()}`, '_blank'); @@ -111,10 +115,10 @@ const Export: React.FC = ({ t }) => { ExportThumb(props, state)} max={chartData.rows} value={rows} - onAfterChange={(updatedRows) => setRows(updatedRows as number)} + onAfterChange={(updatedRows: any) => setRows(updatedRows as number)} />
diff --git a/frontend/static/popups/Popup.tsx b/frontend/static/popups/Popup.tsx index 44908831..ae8bc129 100644 --- a/frontend/static/popups/Popup.tsx +++ b/frontend/static/popups/Popup.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import { Resizable } from 're-resizable'; import * as React from 'react'; import { default as Modal } from 'react-bootstrap/Modal'; @@ -10,7 +11,8 @@ import { buildRangeState } from '../dtale/rangeSelectUtils'; import { ActionType, SetRangeStateAction } from '../redux/actions/AppActions'; import { closeChart } from '../redux/actions/charts'; import { loadDatasets } from '../redux/actions/merge'; -import { AppState, RangeState } from '../redux/state/AppState'; +import { selectChartData, selectDataId } from '../redux/selectors'; +import { RangeState } from '../redux/state/AppState'; import DraggableModalDialog from './DraggableModalDialog'; import * as popupUtils from './popupUtils'; @@ -23,11 +25,10 @@ interface PopupProps { propagateState: DataViewerPropagateState; } +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ chartData, dataId })); + const Popup: React.FC = ({ t, ...props }) => { - const { chartData, dataId } = useSelector((state: AppState) => ({ - chartData: state.chartData, - dataId: state.dataId, - })); + const { chartData, dataId } = useSelector(selectResult); const dispatch = useDispatch(); const mergeRefresher = async (): Promise => await loadDatasets(dispatch); const updateRangeState = (state: RangeState): SetRangeStateAction => @@ -53,7 +54,7 @@ const Popup: React.FC = ({ t, ...props }) => { const { type, visible, size, backdrop } = chartData; const onClose = (): void => { updateRangeState(buildRangeState()); - dispatch(closeChart({ ...chartData, size: size || 'lg' })); + dispatch(closeChart()); }; const { title, body } = popupUtils.buildBodyAndTitle({ ...props, diff --git a/frontend/static/popups/RangeHighlight.tsx b/frontend/static/popups/RangeHighlight.tsx index 8e635d1a..e986f2d9 100644 --- a/frontend/static/popups/RangeHighlight.tsx +++ b/frontend/static/popups/RangeHighlight.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { RGBColor, SketchPicker } from 'react-color'; import { WithTranslation, withTranslation } from 'react-i18next'; @@ -7,8 +8,8 @@ import { AnyAction } from 'redux'; import * as serverState from '../dtale/serverStateManagement'; import * as settingsActions from '../redux/actions/settings'; +import { selectChartData, selectDataId } from '../redux/selectors'; import { - AppState, BaseOption, HasActivation, InstanceSettings, @@ -121,11 +122,13 @@ function rangeAsStr(range: RangeHighlightModes): JSX.Element[] { return subRanges; } +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + chartData: chartData as RangeHighlightPopupData, + dataId, +})); + const RangeHighlight: React.FC = ({ t }) => { - const { chartData, dataId } = useSelector((state: AppState) => ({ - chartData: state.chartData as RangeHighlightPopupData, - dataId: state.dataId, - })); + const { chartData, dataId } = useSelector(selectResult); const dispatch = useDispatch(); const updateSettings = (updatedSettings: Partial): AnyAction => dispatch(settingsActions.updateSettings(updatedSettings) as any as AnyAction); diff --git a/frontend/static/popups/Rename.tsx b/frontend/static/popups/Rename.tsx index 1fd1c68f..5caabb99 100644 --- a/frontend/static/popups/Rename.tsx +++ b/frontend/static/popups/Rename.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -6,7 +7,8 @@ import { DataRecord, DataViewerData, DataViewerPropagateState } from '../dtale/D import * as serverState from '../dtale/serverStateManagement'; import { CloseChartAction } from '../redux/actions/AppActions'; import { closeChart } from '../redux/actions/charts'; -import { AppState, RenamePopupData } from '../redux/state/AppState'; +import { selectChartData, selectDataId } from '../redux/selectors'; +import { RenamePopupData } from '../redux/state/AppState'; import { RemovableError } from '../RemovableError'; require('./Confirmation.css'); @@ -16,11 +18,13 @@ interface RenameProps { propagateState: DataViewerPropagateState; } +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + chartData: chartData as RenamePopupData, + dataId, +})); + export const Rename: React.FC = ({ propagateState, t }) => { - const { chartData, dataId } = useSelector((state: AppState) => ({ - chartData: state.chartData as RenamePopupData, - dataId: state.dataId, - })); + const { chartData, dataId } = useSelector(selectResult); const dispatch = useDispatch(); const [name, setName] = React.useState(chartData.selectedCol); @@ -35,7 +39,7 @@ export const Rename: React.FC = ({ propagateState } }, [name]); - const onClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const onClose = (): CloseChartAction => dispatch(closeChart()); const renameAction = async (): Promise => { const response = await serverState.renameColumn(dataId, selectedCol, name); diff --git a/frontend/static/popups/XArrayDimensions.tsx b/frontend/static/popups/XArrayDimensions.tsx index ba68db45..1554bb02 100644 --- a/frontend/static/popups/XArrayDimensions.tsx +++ b/frontend/static/popups/XArrayDimensions.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -6,7 +7,7 @@ import { createFilter, default as Select } from 'react-select'; import { BouncerWrapper } from '../BouncerWrapper'; import { DataViewerPropagateState } from '../dtale/DataViewerState'; import { updateXArrayDimAction } from '../redux/actions/dtale'; -import { AppState } from '../redux/state/AppState'; +import { selectDataId, selectXArrayDim } from '../redux/selectors'; import { RemovableError } from '../RemovableError'; import * as XArrayRepository from '../repository/XArrayRepository'; @@ -21,11 +22,10 @@ const convertCurrentSelections = (selections: Record): {}, ); +const selectResult = createSelector([selectDataId, selectXArrayDim], (dataId, xarrayDim) => ({ dataId, xarrayDim })); + const XArrayDimensions: React.FC = ({ propagateState, t }) => { - const reduxState = useSelector((state: AppState) => ({ - dataId: state.dataId, - xarrayDim: state.xarrayDim, - })); + const reduxState = useSelector(selectResult); const { dataId } = reduxState; const dispatch = useDispatch(); diff --git a/frontend/static/popups/XArrayIndexes.tsx b/frontend/static/popups/XArrayIndexes.tsx index 943c06ec..7ffeeef2 100644 --- a/frontend/static/popups/XArrayIndexes.tsx +++ b/frontend/static/popups/XArrayIndexes.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -6,7 +7,8 @@ import { createFilter, default as Select } from 'react-select'; import { DataViewerPropagateState, PropagatedState } from '../dtale/DataViewerState'; import { sortOptions } from '../popups/analysis/filters/Constants'; import { ActionType } from '../redux/actions/AppActions'; -import { AppState, XArrayIndexesPopupData } from '../redux/state/AppState'; +import { selectChartData, selectDataId } from '../redux/selectors'; +import { XArrayIndexesPopupData } from '../redux/state/AppState'; import { RemovableError } from '../RemovableError'; import * as XArrayRepository from '../repository/XArrayRepository'; @@ -15,11 +17,13 @@ interface XArrayIndexesProps { propagateState: DataViewerPropagateState; } +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + chartData: chartData as XArrayIndexesPopupData, + dataId, +})); + const XArrayIndexes: React.FC = ({ propagateState, t }) => { - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as XArrayIndexesPopupData, - })); + const { dataId, chartData } = useSelector(selectResult); const dispatch = useDispatch(); const [index, setIndex] = React.useState>( diff --git a/frontend/static/popups/analysis/ColumnAnalysis.tsx b/frontend/static/popups/analysis/ColumnAnalysis.tsx index 4fd8b9bd..deed37b1 100644 --- a/frontend/static/popups/analysis/ColumnAnalysis.tsx +++ b/frontend/static/popups/analysis/ColumnAnalysis.tsx @@ -1,10 +1,12 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import * as chartUtils from '../../chartUtils'; import * as actions from '../../redux/actions/dtale'; -import { AppState, ColumnAnalysisPopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId } from '../../redux/selectors'; +import { ColumnAnalysisPopupData } from '../../redux/state/AppState'; import { AnalysisParams, AnalysisState, AnalysisType } from './ColumnAnalysisState'; import { dataLoader } from './columnAnalysisUtils'; @@ -18,11 +20,13 @@ interface ColumnAnalysisProps { height?: number; } +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + chartData: chartData as ColumnAnalysisPopupData, + dataId, +})); + const ColumnAnalysis: React.FC = ({ height, t }) => { - const { chartData, dataId } = useSelector((state: AppState) => ({ - chartData: state.chartData as ColumnAnalysisPopupData, - dataId: state.dataId, - })); + const { chartData, dataId } = useSelector(selectResult); const chartRef = React.useRef(); const [defaultCategoryAgg, defaultOrdinalAgg] = React.useMemo(() => { const aggs = analysisAggs(t); diff --git a/frontend/static/popups/arcticdb/JumpToColumn.tsx b/frontend/static/popups/arcticdb/JumpToColumn.tsx index 16612146..6be92501 100644 --- a/frontend/static/popups/arcticdb/JumpToColumn.tsx +++ b/frontend/static/popups/arcticdb/JumpToColumn.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -6,7 +7,8 @@ import { DataViewerPropagateState } from '../../dtale/DataViewerState'; import * as serverState from '../../dtale/serverStateManagement'; import { CloseChartAction } from '../../redux/actions/AppActions'; import { closeChart } from '../../redux/actions/charts'; -import { AppState, BaseOption, JumpToColumnPopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId, selectIsArcticDB } from '../../redux/selectors'; +import { BaseOption, JumpToColumnPopupData } from '../../redux/state/AppState'; import { LabeledSelect } from '../create/LabeledSelect'; import { VisibilityState } from '../describe/DescribeState'; @@ -14,14 +16,16 @@ import { VisibilityState } from '../describe/DescribeState'; interface JumpToColumnProps { propagateState: DataViewerPropagateState; } + +const selectResult = createSelector( + [selectChartData, selectDataId, selectIsArcticDB], + (chartData, dataId, isArcticDB) => ({ dataId, chartData: chartData as JumpToColumnPopupData, isArcticDB }), +); + const JumpToColumn: React.FC = ({ propagateState, t }) => { - const { dataId, chartData, isArcticDB } = useSelector((state: AppState) => ({ - dataId: state.dataId, - isArcticDB: state.isArcticDB, - chartData: state.chartData as JumpToColumnPopupData, - })); + const { dataId, chartData, isArcticDB } = useSelector(selectResult); const dispatch = useDispatch(); - const onClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const onClose = (): CloseChartAction => dispatch(closeChart()); const save = async (column: string): Promise => { const visibility = chartData.columns.reduce((res, colCfg) => { diff --git a/frontend/static/popups/arcticdb/LibrarySymbolSelector.tsx b/frontend/static/popups/arcticdb/LibrarySymbolSelector.tsx index 5b89b5ed..6a8d2a7b 100644 --- a/frontend/static/popups/arcticdb/LibrarySymbolSelector.tsx +++ b/frontend/static/popups/arcticdb/LibrarySymbolSelector.tsx @@ -4,15 +4,15 @@ import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; import AsyncValueSelect from '../../filters/AsyncValueSelect'; -import { AppState, BaseOption } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; +import { BaseOption } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as ArcticDBRepository from '../../repository/ArcticDBRepository'; import { LabeledSelect } from '../create/LabeledSelect'; import { jumpToDataset } from '../upload/uploadUtils'; const LibrarySymbolSelector: React.FC = ({ t }) => { - const { dataId } = useSelector((state: AppState) => state); - + const dataId = useSelector(selectDataId); const currentSymbol = React.useMemo(() => { const dataIdSegs = decodeURIComponent(decodeURIComponent(dataId)).split('|'); return dataIdSegs[dataIdSegs.length - 1]; diff --git a/frontend/static/popups/charts/Charts.tsx b/frontend/static/popups/charts/Charts.tsx index be23a722..855b2b5e 100644 --- a/frontend/static/popups/charts/Charts.tsx +++ b/frontend/static/popups/charts/Charts.tsx @@ -1,10 +1,12 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { createFilter, default as Select } from 'react-select'; import { ColumnDef } from '../../dtale/DataViewerState'; -import { AppState, BaseOption, ChartsPopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId } from '../../redux/selectors'; +import { BaseOption, ChartsPopupData } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as ChartsRepository from '../../repository/ChartsRepository'; import * as DtypesRepository from '../../repository/DtypesRepository'; @@ -25,12 +27,13 @@ export interface ChartsState { rollingWindow?: string; } -const Charts: React.FC = ({ t }) => { - const { chartData, dataId } = useSelector((state: AppState) => ({ - chartData: state.chartData as ChartsPopupData, - dataId: state.dataId, - })); +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + chartData: chartData as ChartsPopupData, + dataId, +})); +const Charts: React.FC = ({ t }) => { + const { chartData, dataId } = useSelector(selectResult); const [columns, setColumns] = React.useState(); const [state, setState] = React.useState({ x: chartData.x ? { value: chartData.x } : undefined, diff --git a/frontend/static/popups/correlations/Correlations.tsx b/frontend/static/popups/correlations/Correlations.tsx index 0a7302b4..6866e9cf 100644 --- a/frontend/static/popups/correlations/Correlations.tsx +++ b/frontend/static/popups/correlations/Correlations.tsx @@ -1,4 +1,5 @@ -import { ActiveElement, Chart, ChartConfiguration, ChartEvent, ScriptableContext } from 'chart.js'; +import { createSelector } from '@reduxjs/toolkit'; +import { ActiveElement, Chart, ChartConfiguration, ChartEvent, Point, ScriptableContext } from 'chart.js'; import * as React from 'react'; import { useSelector } from 'react-redux'; @@ -7,7 +8,8 @@ import { BouncerWrapper } from '../../BouncerWrapper'; import * as chartUtils from '../../chartUtils'; import * as actions from '../../redux/actions/dtale'; import { buildURL } from '../../redux/actions/url-utils'; -import { AppState, CorrelationsPopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId } from '../../redux/selectors'; +import { CorrelationsPopupData } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as CorrelationsRepository from '../../repository/CorrelationsRepository'; import * as CustomFilterRepository from '../../repository/CustomFilterRepository'; @@ -60,11 +62,13 @@ export interface CorrelationTimeseriesParameters { minPeriods: number; } +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + chartData: chartData as CorrelationsPopupData, + dataId, +})); + export const Correlations: React.FC = () => { - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as CorrelationsPopupData, - })); + const { dataId, chartData } = useSelector(selectResult); const scatterBouncer = React.useRef(null); const scatterCanvas = React.useRef(null); const chartRef = React.useRef(); @@ -319,7 +323,10 @@ export const Correlations: React.FC = () => { // This case happens on initial chart load return; } - return lineGradient(context.chart, data as number[]); + return lineGradient( + context.chart as Chart<'line', Array, unknown>, + data as number[], + ); }; const dataset = config.data.datasets[0]; dataset.borderColor = buildColor; diff --git a/frontend/static/popups/correlations/CorrelationsGrid.tsx b/frontend/static/popups/correlations/CorrelationsGrid.tsx index 94752f5e..a09dc2ee 100644 --- a/frontend/static/popups/correlations/CorrelationsGrid.tsx +++ b/frontend/static/popups/correlations/CorrelationsGrid.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import Draggable from 'react-draggable'; import { WithTranslation, withTranslation } from 'react-i18next'; @@ -14,7 +15,8 @@ import { import { BouncerWrapper } from '../../BouncerWrapper'; import * as gu from '../../dtale/gridUtils'; import SidePanelButtons from '../../dtale/side/SidePanelButtons'; -import { AppState, BaseOption, SortDef, SortDir } from '../../redux/state/AppState'; +import { selectDataId, selectSidePanel, selectTheme } from '../../redux/selectors'; +import { BaseOption, SortDef, SortDir } from '../../redux/state/AppState'; import { buildCorrelationsUrl, CorrelationGridRow } from '../../repository/CorrelationsRepository'; import { sortOptions } from '../analysis/filters/Constants'; import { renderCodePopupAnchor } from '../CodePopup'; @@ -73,7 +75,7 @@ const filterData = ( } if (col2) { updatedData = updatedData.map( - (row) => ({ column: row.column, [col2.value]: row[col2.value] } as CorrelationGridRow), + (row) => ({ column: row.column, [col2.value]: row[col2.value] }) as CorrelationGridRow, ); } return updatedData; @@ -103,8 +105,14 @@ interface CorrelationsGridProps { toggleStrings: () => Promise; } +const selectResult = createSelector([selectDataId, selectSidePanel, selectTheme], (dataId, sidePanel, theme) => ({ + dataId, + sidePanel, + theme, +})); + const CorrelationsGrid: React.FC = ({ columns, t, ...props }) => { - const { dataId, sidePanel, theme } = useSelector((state: AppState) => state); + const { dataId, sidePanel, theme } = useSelector(selectResult); const columnOptions: Array> = React.useMemo( () => columns.map((column) => ({ value: column })), [columns], diff --git a/frontend/static/popups/create/BinsTester.tsx b/frontend/static/popups/create/BinsTester.tsx index df144bf9..6280ba26 100644 --- a/frontend/static/popups/create/BinsTester.tsx +++ b/frontend/static/popups/create/BinsTester.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; -import { AppState } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; import * as CreateColumnRepository from '../../repository/CreateColumnRepository'; import { ColumnAnalysisChart } from '../analysis/ColumnAnalysisChart'; import { AnalysisType } from '../analysis/ColumnAnalysisState'; @@ -16,7 +16,7 @@ interface BinsTesterProps { } export const BinsTester: React.FC = ({ cfg, valid }) => { - const dataId = useSelector((state: AppState) => state.dataId); + const dataId = useSelector(selectDataId); const [loading, setLoading] = React.useState(false); const [data, setData] = React.useState(); const loadedCfg = React.useRef(); diff --git a/frontend/static/popups/create/CreateColumn.tsx b/frontend/static/popups/create/CreateColumn.tsx index fc803861..675bed5f 100644 --- a/frontend/static/popups/create/CreateColumn.tsx +++ b/frontend/static/popups/create/CreateColumn.tsx @@ -6,7 +6,7 @@ import { BouncerWrapper } from '../../BouncerWrapper'; import { ColumnDef, DataViewerPropagateState } from '../../dtale/DataViewerState'; import { CloseChartAction } from '../../redux/actions/AppActions'; import { closeChart } from '../../redux/actions/charts'; -import { AppState, CreateColumnPopupData } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; import { RemovableError } from '../../RemovableError'; import * as CreateColumnRepository from '../../repository/CreateColumnRepository'; import * as DtypesRepository from '../../repository/DtypesRepository'; @@ -38,12 +38,9 @@ export interface CreateColumnProps { } const CreateColumn: React.FC = ({ prePopulated, propagateState, t }) => { - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as CreateColumnPopupData, - })); + const dataId = useSelector(selectDataId); const dispatch = useDispatch(); - const onClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const onClose = (): CloseChartAction => dispatch(closeChart()); const [columns, setColumns] = React.useState([]); const [error, setError] = React.useState(); diff --git a/frontend/static/popups/create/CreateExponentialSmoothing.tsx b/frontend/static/popups/create/CreateExponentialSmoothing.tsx index b87fdd83..a00b3892 100644 --- a/frontend/static/popups/create/CreateExponentialSmoothing.tsx +++ b/frontend/static/popups/create/CreateExponentialSmoothing.tsx @@ -85,12 +85,12 @@ const CreateExponentialSmoothing: React.FC Thumb(props, state)} value={isNaN(alpha) ? 0.0 : alpha} min={0.0} max={1.0} step={0.01} - onAfterChange={(update) => setAlpha(Number(update))} + onAfterChange={(update: any) => setAlpha(Number(update))} /> {t('alpha_description')} diff --git a/frontend/static/popups/create/CreateRandom.tsx b/frontend/static/popups/create/CreateRandom.tsx index b4e75c33..467d7110 100644 --- a/frontend/static/popups/create/CreateRandom.tsx +++ b/frontend/static/popups/create/CreateRandom.tsx @@ -1,4 +1,4 @@ -import { DateInput2 } from '@blueprintjs/datetime2'; +import { DateInput } from '@blueprintjs/datetime'; import { TFunction } from 'i18next'; import moment from 'moment'; import * as React from 'react'; @@ -21,7 +21,7 @@ import { LabeledInput } from './LabeledInput'; import '@blueprintjs/icons/lib/css/blueprint-icons.css'; import '@blueprintjs/core/lib/css/blueprint.css'; import '@blueprintjs/datetime/lib/css/blueprint-datetime.css'; -import '@blueprintjs/datetime2/lib/css/blueprint-datetime2.css'; +import '@blueprintjs/select/lib/css/blueprint-select.css'; const DATE_FMT = 'YYYYMMDD'; const MIN_DATE = '19000101'; @@ -103,7 +103,7 @@ const CreateRandom: React.FC = ({ const buildDateInput = (setter: (value?: string) => void, defaultValue: string, value?: string): JSX.Element => (
- moment(str).toDate()} placeholder={DATE_FMT} diff --git a/frontend/static/popups/create/CreateWinsorize.tsx b/frontend/static/popups/create/CreateWinsorize.tsx index 9c2f930c..77c20e90 100644 --- a/frontend/static/popups/create/CreateWinsorize.tsx +++ b/frontend/static/popups/create/CreateWinsorize.tsx @@ -107,9 +107,9 @@ const CreateWinsorize: React.FC = ({ Thumb(props, state)} value={limits} - onAfterChange={(value) => setLimits(value as number[])} + onAfterChange={(value: any) => setLimits(value as number[])} /> ( className="Select is-clearable is-searchable Select--single" classNamePrefix="Select" options={options} - getOptionLabel={(option) => option?.label ?? option.value} - getOptionValue={(option) => option.value} + getOptionLabel={(option: BaseOption) => option?.label ?? option.value} + getOptionValue={(option: BaseOption) => option.value} {...(onChange ? { value, diff --git a/frontend/static/popups/describe/Describe.tsx b/frontend/static/popups/describe/Describe.tsx index 6b7d1824..1dd4d798 100644 --- a/frontend/static/popups/describe/Describe.tsx +++ b/frontend/static/popups/describe/Describe.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; @@ -5,7 +6,8 @@ import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; import { ColumnDef } from '../../dtale/DataViewerState'; import * as serverState from '../../dtale/serverStateManagement'; -import { AppState, DescribePopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId } from '../../redux/selectors'; +import { DescribePopupData } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DtypesRepository from '../../repository/DtypesRepository'; @@ -14,12 +16,13 @@ import { VisibilityState } from './DescribeState'; import Details from './Details'; import DtypesGrid from './DtypesGrid'; -const Describe: React.FC = ({ t }) => { - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as DescribePopupData, - })); +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + dataId, + chartData: chartData as DescribePopupData, +})); +const Describe: React.FC = ({ t }) => { + const { dataId, chartData } = useSelector(selectResult); const [loadingDtypes, setLoadingDtypes] = React.useState(true); const [error, setError] = React.useState(); const [dtypes, setDtypes] = React.useState(); diff --git a/frontend/static/popups/describe/Details.tsx b/frontend/static/popups/describe/Details.tsx index 3512d586..04a7bfd0 100644 --- a/frontend/static/popups/describe/Details.tsx +++ b/frontend/static/popups/describe/Details.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -11,7 +12,8 @@ import { ColumnType, findColType, noFilters } from '../../dtale/gridUtils'; import { JSAnchor } from '../../JSAnchor'; import * as actions from '../../redux/actions/dtale'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, InstanceSettings } from '../../redux/state/AppState'; +import { selectColumnCount, selectDataId, selectIsArcticDB, selectSettings } from '../../redux/selectors'; +import { InstanceSettings } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as ColumnFilterRepository from '../../repository/ColumnFilterRepository'; import * as DescribeRepository from '../../repository/DescribeRepository'; @@ -35,13 +37,13 @@ export interface DetailsProps { close?: JSX.Element; } +const selectResult = createSelector( + [selectColumnCount, selectDataId, selectIsArcticDB, selectSettings], + (columnCount, dataId, isArcticDB, settings) => ({ columnCount, dataId, isArcticDB, settings }), +); + const Details: React.FC = ({ selected, dtypes, close, t }) => { - const { dataId, settings, isArcticDB, columnCount } = useSelector((state: AppState) => ({ - dataId: state.dataId, - settings: state.settings, - isArcticDB: state.isArcticDB, - columnCount: state.columnCount, - })); + const { dataId, settings, isArcticDB, columnCount } = useSelector(selectResult); const largeArcticDB = React.useMemo( () => isArcticDB!! && (isArcticDB >= 1_000_000 || columnCount > 100), [isArcticDB, columnCount], diff --git a/frontend/static/popups/describe/DetailsCharts.tsx b/frontend/static/popups/describe/DetailsCharts.tsx index 5d0d1bb1..409356a4 100644 --- a/frontend/static/popups/describe/DetailsCharts.tsx +++ b/frontend/static/popups/describe/DetailsCharts.tsx @@ -4,7 +4,7 @@ import { useSelector } from 'react-redux'; import { Bouncer } from '../../Bouncer'; import { ChartObj } from '../../chartUtils'; import { ColumnDef } from '../../dtale/DataViewerState'; -import { AppState } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; import { AnalysisParams, AnalysisState, AnalysisType } from '../analysis/ColumnAnalysisState'; import { dataLoader } from '../analysis/columnAnalysisUtils'; import DescribeFilters from '../analysis/filters/DescribeFilters'; @@ -24,8 +24,7 @@ interface DetailsChartsProps { } export const DetailsCharts: React.FC = ({ details, detailCode, col, filtered, ...props }) => { - const dataId = useSelector((state: AppState) => state.dataId); - + const dataId = useSelector(selectDataId); const [cols, setCols] = React.useState([...props.cols]); const [dtype, setDtype] = React.useState(props.dtype); const [type, setType] = React.useState(AnalysisType.BOXPLOT); diff --git a/frontend/static/popups/describe/DetailsSequentialDiffs.tsx b/frontend/static/popups/describe/DetailsSequentialDiffs.tsx index 1ebf045a..e4367bac 100644 --- a/frontend/static/popups/describe/DetailsSequentialDiffs.tsx +++ b/frontend/static/popups/describe/DetailsSequentialDiffs.tsx @@ -3,7 +3,8 @@ import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import ButtonToggle from '../../ButtonToggle'; -import { AppState, SortDir } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; +import { SortDir } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DescribeRepository from '../../repository/DescribeRepository'; @@ -17,7 +18,7 @@ interface DetailSequentialDiffsProps { } const DetailsSequentialDiffs: React.FC = ({ data, column, t }) => { - const dataId = useSelector((state: AppState) => state.dataId); + const dataId = useSelector(selectDataId); const sortOptions = React.useMemo( () => [ { label: t('None'), value: undefined }, diff --git a/frontend/static/popups/duplicates/ColumnNames.tsx b/frontend/static/popups/duplicates/ColumnNames.tsx index 79d77c3b..974fcf86 100644 --- a/frontend/static/popups/duplicates/ColumnNames.tsx +++ b/frontend/static/popups/duplicates/ColumnNames.tsx @@ -3,7 +3,7 @@ import { WithTranslation, withTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; -import { AppState } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; import { RemovableError } from '../../RemovableError'; import * as DuplicatesRepository from '../../repository/DuplicatesRepository'; @@ -20,8 +20,7 @@ import Keep from './Keep'; type TestType = DuplicatesRepository.DuplicatesResponse; const ColumnNames: React.FC = ({ setCfg, t }) => { - const dataId = useSelector((state: AppState) => state.dataId); - + const dataId = useSelector(selectDataId); const [keep, setKeep] = React.useState(KeepType.FIRST); const [testOutput, setTestOutput] = React.useState(); const [loadingTest, setLoadingTest] = React.useState(false); diff --git a/frontend/static/popups/duplicates/Columns.tsx b/frontend/static/popups/duplicates/Columns.tsx index fd9dda8d..72386a12 100644 --- a/frontend/static/popups/duplicates/Columns.tsx +++ b/frontend/static/popups/duplicates/Columns.tsx @@ -3,7 +3,7 @@ import { WithTranslation, withTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; -import { AppState } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; import { RemovableError } from '../../RemovableError'; import * as DuplicatesRepository from '../../repository/DuplicatesRepository'; @@ -20,8 +20,7 @@ import Keep from './Keep'; type TestType = DuplicatesRepository.DuplicatesResponse; const Columns: React.FC = ({ setCfg, t }) => { - const dataId = useSelector((state: AppState) => state.dataId); - + const dataId = useSelector(selectDataId); const [keep, setKeep] = React.useState(KeepType.FIRST); const [testOutput, setTestOutput] = React.useState(); const [loadingTest, setLoadingTest] = React.useState(false); diff --git a/frontend/static/popups/duplicates/Duplicates.tsx b/frontend/static/popups/duplicates/Duplicates.tsx index ece03f7e..a9e87f7e 100644 --- a/frontend/static/popups/duplicates/Duplicates.tsx +++ b/frontend/static/popups/duplicates/Duplicates.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; @@ -5,7 +6,8 @@ import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; import ButtonToggle from '../../ButtonToggle'; import { ColumnDef } from '../../dtale/DataViewerState'; -import { AppState, DuplicatesPopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId } from '../../redux/selectors'; +import { DuplicatesPopupData } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DtypesRepository from '../../repository/DtypesRepository'; import * as DuplicatesRepository from '../../repository/DuplicatesRepository'; @@ -26,12 +28,13 @@ const TYPE_DESC: { [k in DuplicatesConfigType]?: string } = { [DuplicatesConfigType.SHOW]: 'Show all duplicates data or duplicate data for a specific value.', }; -const Duplicates: React.FC = ({ t }) => { - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as DuplicatesPopupData, - })); +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + chartData: chartData as DuplicatesPopupData, + dataId, +})); +const Duplicates: React.FC = ({ t }) => { + const { dataId, chartData } = useSelector(selectResult); const [error, setError] = React.useState(); const [loadingColumns, setLoadingColumns] = React.useState(true); const [columns, setColumns] = React.useState([]); diff --git a/frontend/static/popups/duplicates/Rows.tsx b/frontend/static/popups/duplicates/Rows.tsx index dcc9a69c..3f577dc8 100644 --- a/frontend/static/popups/duplicates/Rows.tsx +++ b/frontend/static/popups/duplicates/Rows.tsx @@ -4,7 +4,8 @@ import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; import { ColumnDef } from '../../dtale/DataViewerState'; -import { AppState, BaseOption } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; +import { BaseOption } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DuplicatesRepository from '../../repository/DuplicatesRepository'; import ColumnSelect from '../create/ColumnSelect'; @@ -32,8 +33,7 @@ export interface RowsProps extends BaseDuplicatesComponentProps { type TestType = DuplicatesRepository.DuplicatesResponse; const Rows: React.FC = ({ columns, selectedCol, setCfg, t }) => { - const dataId = useSelector((state: AppState) => state.dataId); - + const dataId = useSelector(selectDataId); const [keep, setKeep] = React.useState(KeepType.FIRST); const [subset, setSubset] = React.useState> | undefined>( selectedCol ? [{ value: selectedCol }] : undefined, diff --git a/frontend/static/popups/duplicates/ShowDuplicates.tsx b/frontend/static/popups/duplicates/ShowDuplicates.tsx index 69d270f6..329cf335 100644 --- a/frontend/static/popups/duplicates/ShowDuplicates.tsx +++ b/frontend/static/popups/duplicates/ShowDuplicates.tsx @@ -4,7 +4,8 @@ import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; import { ColumnDef } from '../../dtale/DataViewerState'; -import { AppState, BaseOption } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; +import { BaseOption } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DuplicatesRepository from '../../repository/DuplicatesRepository'; import ColumnSelect from '../create/ColumnSelect'; @@ -29,8 +30,7 @@ export interface ShowDuplicatesProps extends BaseDuplicatesComponentProps { type TestType = DuplicatesRepository.DuplicatesResponse; const ShowDuplicates: React.FC = ({ columns, setCfg, t }) => { - const dataId = useSelector((state: AppState) => state.dataId); - + const dataId = useSelector(selectDataId); const [group, setGroup] = React.useState>>(); const [filter, setFilter] = React.useState(); const [testOutput, setTestOutput] = React.useState(); diff --git a/frontend/static/popups/filter/FilterPanel.tsx b/frontend/static/popups/filter/FilterPanel.tsx index dddc2892..0775d2f5 100644 --- a/frontend/static/popups/filter/FilterPanel.tsx +++ b/frontend/static/popups/filter/FilterPanel.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -10,7 +11,8 @@ import SidePanelButtons from '../../dtale/side/SidePanelButtons'; import { ActionType, HideSidePanelAction, SetQueryEngineAction } from '../../redux/actions/AppActions'; import * as dtaleActions from '../../redux/actions/dtale'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, InstanceSettings, QueryEngine } from '../../redux/state/AppState'; +import { selectDataId, selectQueryEngine, selectSettings } from '../../redux/selectors'; +import { InstanceSettings, QueryEngine } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as CustomFilterRepository from '../../repository/CustomFilterRepository'; import { Checkbox } from '../create/LabeledCheckbox'; @@ -20,13 +22,13 @@ import PandasQueryHelp from './PandasQueryHelp'; import QueryExamples from './QueryExamples'; import StructuredFilters from './StructuredFilters'; -const FilterPanel: React.FC = ({ t }) => { - const { dataId, queryEngine, settings } = useSelector((state: AppState) => ({ - dataId: state.dataId, - queryEngine: state.queryEngine, - settings: state.settings, - })); +const selectResult = createSelector( + [selectDataId, selectQueryEngine, selectSettings], + (dataId, queryEngine, settings) => ({ dataId, queryEngine, settings }), +); +const FilterPanel: React.FC = ({ t }) => { + const { dataId, queryEngine, settings } = useSelector(selectResult); const dispatch = useDispatch(); const hideSidePanel = (): HideSidePanelAction => dispatch({ type: ActionType.HIDE_SIDE_PANEL }); const updateSettings = (updatedSettings: Partial, callback?: () => void): AnyAction => diff --git a/frontend/static/popups/filter/FilterPopup.tsx b/frontend/static/popups/filter/FilterPopup.tsx index 6145c8a1..4c82c05b 100644 --- a/frontend/static/popups/filter/FilterPopup.tsx +++ b/frontend/static/popups/filter/FilterPopup.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -10,7 +11,8 @@ import { CloseChartAction, SetQueryEngineAction } from '../../redux/actions/AppA import { closeChart } from '../../redux/actions/charts'; import * as dtaleActions from '../../redux/actions/dtale'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, CustomFilterPopupData, InstanceSettings, QueryEngine } from '../../redux/state/AppState'; +import { selectDataId, selectQueryEngine, selectSettings } from '../../redux/selectors'; +import { InstanceSettings, QueryEngine } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as CustomFilterRepository from '../../repository/CustomFilterRepository'; import { Checkbox } from '../create/LabeledCheckbox'; @@ -20,15 +22,15 @@ import PandasQueryHelp from './PandasQueryHelp'; import QueryExamples from './QueryExamples'; import StructuredFilters from './StructuredFilters'; +const selectResult = createSelector( + [selectDataId, selectQueryEngine, selectSettings], + (dataId, queryEngine, settings) => ({ dataId, queryEngine, settings }), +); + const FilterPopup: React.FC = ({ t }) => { - const { dataId, chartData, queryEngine, settings } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as CustomFilterPopupData, - queryEngine: state.queryEngine, - settings: state.settings, - })); + const { dataId, queryEngine, settings } = useSelector(selectResult); const dispatch = useDispatch(); - const onClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const onClose = (): CloseChartAction => dispatch(closeChart()); const updateSettings = (updatedSettings: Partial, callback?: () => void): AnyAction => dispatch(settingsActions.updateSettings(updatedSettings, callback) as any as AnyAction); const setEngine = (engine: QueryEngine): SetQueryEngineAction => dispatch(dtaleActions.setQueryEngine(engine)); diff --git a/frontend/static/popups/formats/Formatting.tsx b/frontend/static/popups/formats/Formatting.tsx index f54637bc..e95dcda1 100644 --- a/frontend/static/popups/formats/Formatting.tsx +++ b/frontend/static/popups/formats/Formatting.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import { Resizable } from 're-resizable'; import React from 'react'; import { default as Modal } from 'react-bootstrap/Modal'; @@ -11,7 +12,8 @@ import { buildDataProps, calcColWidth, ColumnType, findColType, getDtype } from import * as serverState from '../../dtale/serverStateManagement'; import { ActionType, CloseFormattingAction } from '../../redux/actions/AppActions'; import * as settingsActions from '../../redux/actions/settings'; -import { AppState, BaseOption, InstanceSettings } from '../../redux/state/AppState'; +import { selectDataId, selectFormattingOpen, selectMaxColumnWidth, selectSettings } from '../../redux/selectors'; +import { BaseOption, InstanceSettings } from '../../redux/state/AppState'; import { LabeledCheckbox } from '../create/LabeledCheckbox'; import { LabeledSelect } from '../create/LabeledSelect'; import DraggableModalDialog from '../DraggableModalDialog'; @@ -28,8 +30,13 @@ interface FormattingProps { propagateState: DataViewerPropagateState; } +const selectResult = createSelector( + [selectDataId, selectSettings, selectMaxColumnWidth, selectFormattingOpen], + (dataId, settings, maxColumnWidth, formattingOpen) => ({ dataId, settings, maxColumnWidth, formattingOpen }), +); + const Formatting: React.FC = ({ data, columns, rowCount, propagateState, t }) => { - const { dataId, settings, maxColumnWidth, formattingOpen } = useSelector((state: AppState) => state); + const { dataId, settings, maxColumnWidth, formattingOpen } = useSelector(selectResult); const visible = formattingOpen !== null; const columnFormats = settings.columnFormats ?? {}; const dispatch = useDispatch(); diff --git a/frontend/static/popups/instances/Instances.tsx b/frontend/static/popups/instances/Instances.tsx index 6626900f..04883cc9 100644 --- a/frontend/static/popups/instances/Instances.tsx +++ b/frontend/static/popups/instances/Instances.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import numeral from 'numeral'; import React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; @@ -13,7 +14,7 @@ import { import { Bouncer } from '../../Bouncer'; import * as gu from '../../dtale/gridUtils'; -import { AppState } from '../../redux/state/AppState'; +import { selectDataId, selectIFrame } from '../../redux/selectors'; import { RemovableError } from '../../RemovableError'; import * as InstanceRepository from '../../repository/InstanceRepository'; import { truncate } from '../../stringUtils'; @@ -27,8 +28,10 @@ const AutoSizer = _AutoSizer as unknown as React.FC; const Column = _Column as unknown as React.FC; const Table = _Table as unknown as React.FC; +const selectResult = createSelector([selectDataId, selectIFrame], (dataId, iframe) => ({ dataId, iframe })); + const Instances: React.FC = ({ t }) => { - const { dataId, iframe } = useSelector((state: AppState) => ({ dataId: state.dataId, iframe: state.iframe })); + const { dataId, iframe } = useSelector(selectResult); const [instances, setInstances] = React.useState([]); const [error, setError] = React.useState(); const [loadingInstances, setLoadingInstances] = React.useState(true); diff --git a/frontend/static/popups/merge/ActionConfig.tsx b/frontend/static/popups/merge/ActionConfig.tsx index 4642ff7d..dc9dc502 100644 --- a/frontend/static/popups/merge/ActionConfig.tsx +++ b/frontend/static/popups/merge/ActionConfig.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -14,7 +15,8 @@ import { MergeActionType, UpdateMergeActionTypeAction, } from '../../redux/actions/MergeActions'; -import { HowToMerge, MergeConfigType, MergeState } from '../../redux/state/MergeState'; +import { selectAction, selectMergeConfig, selectStackConfig } from '../../redux/mergeSelectors'; +import { HowToMerge, MergeConfigType } from '../../redux/state/MergeState'; import { capitalize } from '../../stringUtils'; import ExampleCode from './code.json'; @@ -26,6 +28,11 @@ interface ExampleToggleProps { codeKey: string; } +const selectResult = createSelector( + [selectAction, selectMergeConfig, selectStackConfig], + (action, mergeConfig, stackConfig) => ({ action, mergeConfig, stackConfig }), +); + const BaseExampleToggle: React.FC> = ({ show, setShow, @@ -63,11 +70,7 @@ const exampleImage = (name: string): string => // Example image URL: https://pandas.pydata.org/pandas-docs/stable/_images/merging_join_multi_df.png const ActionConfig: React.FC = ({ t }) => { - const { action, mergeConfig, stackConfig } = useSelector((state: MergeState) => ({ - action: state.action, - mergeConfig: state.mergeConfig, - stackConfig: state.stackConfig, - })); + const { action, mergeConfig, stackConfig } = useSelector(selectResult); const dispatch = useDispatch(); const updateActionType = (updatedAction: MergeConfigType): UpdateMergeActionTypeAction => dispatch({ type: MergeActionType.UPDATE_ACTION_TYPE, action: updatedAction }); diff --git a/frontend/static/popups/merge/MergeDatasets.tsx b/frontend/static/popups/merge/MergeDatasets.tsx index 0215a23d..c0cf1b9a 100644 --- a/frontend/static/popups/merge/MergeDatasets.tsx +++ b/frontend/static/popups/merge/MergeDatasets.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -13,8 +14,9 @@ import { ToggleDatasetAction, UpdateDatasetAction, } from '../../redux/actions/MergeActions'; +import * as selectors from '../../redux/mergeSelectors'; import { BaseOption, PopupType } from '../../redux/state/AppState'; -import { Dataset, MergeInstance, MergeState } from '../../redux/state/MergeState'; +import { Dataset, MergeInstance } from '../../redux/state/MergeState'; import { RemovableError } from '../../RemovableError'; import { LabeledInput } from '../create/LabeledInput'; import { LabeledSelect } from '../create/LabeledSelect'; @@ -32,10 +34,29 @@ const datasetName = (instance: MergeInstance): string => const colName = (col: ColumnDef): string => `${col.name} (${col.dtype})`; +const selectResult = createSelector( + [ + selectors.selectInstances, + selectors.selectLoading, + selectors.selectLoadingDatasets, + selectors.selectAction, + selectors.selectDatasets, + selectors.selectLoadingError, + selectors.selectMergeError, + ], + (instances, loading, loadingDatasets, action, datasets, loadingError, mergeError) => ({ + instances, + loading, + loadingDatasets, + action, + datasets, + loadingError, + mergeError, + }), +); + const MergeDatasets: React.FC = ({ t }) => { - const { instances, loading, loadingDatasets, action, datasets, loadingError, mergeError } = useSelector( - (state: MergeState) => ({ ...state }), - ); + const { instances, loading, loadingDatasets, action, datasets, loadingError, mergeError } = useSelector(selectResult); const dispatch = useDispatch(); const addDataset = (dataId: string): AddDatasetAction => dispatch({ type: MergeActionType.ADD_DATASET, dataId }); const removeDataset = (index: number): RemoveDatasetAction => diff --git a/frontend/static/popups/merge/MergeOutput.tsx b/frontend/static/popups/merge/MergeOutput.tsx index c473d56e..34b28cc1 100644 --- a/frontend/static/popups/merge/MergeOutput.tsx +++ b/frontend/static/popups/merge/MergeOutput.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -12,7 +13,8 @@ import { BouncerWrapper } from '../../BouncerWrapper'; import { ColumnDef } from '../../dtale/DataViewerState'; import * as mergeActions from '../../redux/actions/merge'; import { MergeActionType, ToggleShowCodeAction } from '../../redux/actions/MergeActions'; -import { Dataset, MergeConfig, MergeConfigType, MergeState, StackConfig } from '../../redux/state/MergeState'; +import * as selectors from '../../redux/mergeSelectors'; +import { Dataset, MergeConfig, MergeConfigType, StackConfig } from '../../redux/state/MergeState'; import { capitalize } from '../../stringUtils'; import { jumpToDataset } from '../upload/uploadUtils'; @@ -71,10 +73,29 @@ const buildCode = ( return code; }; +const selectResult = createSelector( + [ + selectors.selectAction, + selectors.selectDatasets, + selectors.selectLoadingMerge, + selectors.selectMergeConfig, + selectors.selectStackConfig, + selectors.selectMergeDataId, + selectors.selectShowCode, + ], + (action, datasets, loadingMerge, mergeConfig, stackConfig, mergeDataId, showCode) => ({ + action, + datasets, + loadingMerge, + mergeConfig, + stackConfig, + mergeDataId, + showCode, + }), +); + const MergeOutput: React.FC = ({ t }) => { - const { action, datasets, loadingMerge, mergeConfig, stackConfig, mergeDataId, showCode } = useSelector( - (state: MergeState) => ({ ...state }), - ); + const { action, datasets, loadingMerge, mergeConfig, stackConfig, mergeDataId, showCode } = useSelector(selectResult); const dispatch = useDispatch(); const buildMerge = (name: string): AnyAction => dispatch(mergeActions.buildMerge(name) as any as AnyAction); const clearMerge = (): AnyAction => dispatch(mergeActions.clearMerge() as any as AnyAction); diff --git a/frontend/static/popups/pps/PredictivePowerScore.tsx b/frontend/static/popups/pps/PredictivePowerScore.tsx index 6db63da0..9b53e9d6 100644 --- a/frontend/static/popups/pps/PredictivePowerScore.tsx +++ b/frontend/static/popups/pps/PredictivePowerScore.tsx @@ -1,9 +1,11 @@ +import { createSelector } from '@reduxjs/toolkit'; import React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; -import { AppState, PPSPopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId } from '../../redux/selectors'; +import { PPSPopupData } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as CorrelationsRepository from '../../repository/CorrelationsRepository'; import { CorrelationsGridState } from '../correlations/Correlations'; @@ -15,12 +17,13 @@ import { displayScore, default as PPSDetails } from './PPSDetails'; /** Correlations grid state properties w/ PPS support */ type PPSGridState = CorrelationsGridState & { pps: CorrelationsRepository.PPSGridRow[] }; -const PredictivePowerScore: React.FC = ({ t }) => { - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as PPSPopupData, - })); +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + dataId, + chartData: chartData as PPSPopupData, +})); +const PredictivePowerScore: React.FC = ({ t }) => { + const { dataId, chartData } = useSelector(selectResult); const [correlations, setCorrelations] = React.useState(); const [error, setError] = React.useState(); const [selectedCols, setSelectedCols] = React.useState([]); diff --git a/frontend/static/popups/replacement/CreateReplacement.tsx b/frontend/static/popups/replacement/CreateReplacement.tsx index cf1cbb40..d73430ab 100644 --- a/frontend/static/popups/replacement/CreateReplacement.tsx +++ b/frontend/static/popups/replacement/CreateReplacement.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; @@ -8,7 +9,8 @@ import { ColumnDef } from '../../dtale/DataViewerState'; import { ColumnType, findColType, getDtype } from '../../dtale/gridUtils'; import { CloseChartAction } from '../../redux/actions/AppActions'; import { closeChart } from '../../redux/actions/charts'; -import { AppState, BaseOption, ReplacementPopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId } from '../../redux/selectors'; +import { BaseOption, ReplacementPopupData } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as CreateReplacementRepository from '../../repository/CreateReplacementRepository'; import * as DtypesRepository from '../../repository/DtypesRepository'; @@ -45,6 +47,11 @@ const buildTypeFilter = (type: ReplacementType): ((colType: ColumnType) => boole } }; +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + dataId, + chartData: chartData as ReplacementPopupData, +})); + const CreateReplacement: React.FC = ({ t }) => { const baseTypeOpts = React.useMemo( () => [ @@ -56,12 +63,9 @@ const CreateReplacement: React.FC = ({ t }) => { ], [t], ); - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as ReplacementPopupData, - })); + const { dataId, chartData } = useSelector(selectResult); const dispatch = useDispatch(); - const onClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const onClose = (): CloseChartAction => dispatch(closeChart()); const [type, setType] = React.useState(); const [saveAs, setSaveAs] = React.useState(SaveAs.INPLACE); diff --git a/frontend/static/popups/reshape/Aggregate.tsx b/frontend/static/popups/reshape/Aggregate.tsx index 156316d1..5413011b 100644 --- a/frontend/static/popups/reshape/Aggregate.tsx +++ b/frontend/static/popups/reshape/Aggregate.tsx @@ -6,7 +6,8 @@ import { default as Select } from 'react-select'; import ButtonToggle from '../../ButtonToggle'; import * as gu from '../../dtale/gridUtils'; import { default as ColumnSelect, constructColumnOptionsFilteredByOtherValues } from '../../popups/create/ColumnSelect'; -import { AppState, BaseOption } from '../../redux/state/AppState'; +import { selectPythonVersion } from '../../redux/selectors'; +import { BaseOption } from '../../redux/state/AppState'; import { pivotAggs } from '../analysis/filters/Constants'; import { CreateColumnCodeSnippet } from '../create/CodeSnippet'; import { Checkbox } from '../create/LabeledCheckbox'; @@ -77,7 +78,7 @@ export const buildCode = (cfg: ReshapeAggregateConfig): CreateColumnCodeSnippet }; const Aggregate: React.FC = ({ columns, updateState, t }) => { - const pythonVersion = useSelector((state: AppState) => state.pythonVersion); + const pythonVersion = useSelector(selectPythonVersion); const currentAggRef = React.useRef(null); const [currentAggCol, setCurrentAggCol] = React.useState>(); diff --git a/frontend/static/popups/reshape/Reshape.tsx b/frontend/static/popups/reshape/Reshape.tsx index 9476ab5e..ab15a0dc 100644 --- a/frontend/static/popups/reshape/Reshape.tsx +++ b/frontend/static/popups/reshape/Reshape.tsx @@ -7,7 +7,7 @@ import ButtonToggle from '../../ButtonToggle'; import { ColumnDef } from '../../dtale/DataViewerState'; import { CloseChartAction } from '../../redux/actions/AppActions'; import { closeChart } from '../../redux/actions/charts'; -import { AppState, ReshapePopupData } from '../../redux/state/AppState'; +import { selectDataId } from '../../redux/selectors'; import { RemovableError } from '../../RemovableError'; import * as DtypesRepository from '../../repository/DtypesRepository'; import * as ReshapeRepository from '../../repository/ReshapeRepository'; @@ -29,12 +29,9 @@ export const buildForwardURL = (href: string, dataId: string): string => { }; const Reshape: React.FC = ({ t }) => { - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as ReshapePopupData, - })); + const dataId = useSelector(selectDataId); const dispatch = useDispatch(); - const onClose = (): CloseChartAction => dispatch(closeChart(chartData)); + const onClose = (): CloseChartAction => dispatch(closeChart()); const [columns, setColumns] = React.useState([]); const [error, setError] = React.useState(); diff --git a/frontend/static/popups/timeseries/Reports.tsx b/frontend/static/popups/timeseries/Reports.tsx index 2dc3f593..db4ae42a 100644 --- a/frontend/static/popups/timeseries/Reports.tsx +++ b/frontend/static/popups/timeseries/Reports.tsx @@ -1,3 +1,4 @@ +import { createSelector } from '@reduxjs/toolkit'; import { ChartConfiguration } from 'chart.js'; import React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; @@ -10,7 +11,8 @@ import { ColumnDef } from '../../dtale/DataViewerState'; import { isDateCol } from '../../dtale/gridUtils'; import { ActionType, HideSidePanelAction } from '../../redux/actions/AppActions'; import { buildURLString } from '../../redux/actions/url-utils'; -import { AppState, ButtonOption } from '../../redux/state/AppState'; +import { selectDataId, selectPythonVersion } from '../../redux/selectors'; +import { ButtonOption } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as DtypesRepository from '../../repository/DtypesRepository'; import ChartsBody from '../charts/ChartsBody'; @@ -35,11 +37,13 @@ import { require('./Reports.css'); +const selectResult = createSelector([selectDataId, selectPythonVersion], (dataId, pythonVersion) => ({ + pythonVersion, + dataId, +})); + const Reports: React.FC = ({ t }) => { - const { dataId, pythonVersion } = useSelector((state: AppState) => ({ - dataId: state.dataId, - pythonVersion: state.pythonVersion, - })); + const { dataId, pythonVersion } = useSelector(selectResult); const dispatch = useDispatch(); const hideSidePanel = (): HideSidePanelAction => dispatch({ type: ActionType.HIDE_SIDE_PANEL }); const typeOpts = React.useMemo(() => { diff --git a/frontend/static/popups/variance/Variance.tsx b/frontend/static/popups/variance/Variance.tsx index 1561e092..a208d8e8 100644 --- a/frontend/static/popups/variance/Variance.tsx +++ b/frontend/static/popups/variance/Variance.tsx @@ -1,10 +1,12 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { BouncerWrapper } from '../../BouncerWrapper'; import * as gu from '../../dtale/gridUtils'; -import { AppState, VariancePopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId, selectSettings } from '../../redux/selectors'; +import { VariancePopupData } from '../../redux/state/AppState'; import { RemovableError } from '../../RemovableError'; import * as VarianceRepository from '../../repository/VarianceRepository'; import { renderCodePopupAnchor } from '../CodePopup'; @@ -14,12 +16,14 @@ import VarianceChart from './VarianceChart'; const toPercent = (value: number): string => (100 * value).toFixed(2); +const selectResult = createSelector([selectDataId, selectChartData, selectSettings], (dataId, chartData, settings) => ({ + dataId, + chartData: chartData as VariancePopupData, + settings, +})); + const Variance: React.FC = ({ t }) => { - const { dataId, chartData, settings } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as VariancePopupData, - settings: state.settings, - })); + const { dataId, chartData, settings } = useSelector(selectResult); const preExistingFilters = React.useMemo(() => { const { query, columnFilters, outlierFilters, predefinedFilters } = settings; return !gu.noFilters({ query, columnFilters, outlierFilters, predefinedFilters }); diff --git a/frontend/static/popups/variance/VarianceChart.tsx b/frontend/static/popups/variance/VarianceChart.tsx index 67eda0a4..155e17c8 100644 --- a/frontend/static/popups/variance/VarianceChart.tsx +++ b/frontend/static/popups/variance/VarianceChart.tsx @@ -1,8 +1,10 @@ +import { createSelector } from '@reduxjs/toolkit'; import * as React from 'react'; import { withTranslation, WithTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { AppState, VariancePopupData } from '../../redux/state/AppState'; +import { selectChartData, selectDataId } from '../../redux/selectors'; +import { VariancePopupData } from '../../redux/state/AppState'; import { AnalysisState, AnalysisType } from '../analysis/ColumnAnalysisState'; import { dataLoader } from '../analysis/columnAnalysisUtils'; import TextEnterFilter from '../analysis/filters/TextEnterFilter'; @@ -13,11 +15,13 @@ interface VarianceChartProps { filtered: boolean; } +const selectResult = createSelector([selectDataId, selectChartData], (dataId, chartData) => ({ + dataId, + chartData: chartData as VariancePopupData, +})); + const VarianceChart: React.FC = ({ height = 400, filtered, t }) => { - const { dataId, chartData } = useSelector((state: AppState) => ({ - dataId: state.dataId, - chartData: state.chartData as VariancePopupData, - })); + const { dataId, chartData } = useSelector(selectResult); const [bins, setBins] = React.useState(20); const [error, setError] = React.useState(); const [chart, setChart] = React.useState(); diff --git a/frontend/static/redux/actions/charts.ts b/frontend/static/redux/actions/charts.ts index 5443b4e2..defd94b2 100644 --- a/frontend/static/redux/actions/charts.ts +++ b/frontend/static/redux/actions/charts.ts @@ -4,4 +4,4 @@ import { ActionType, CloseChartAction, OpenChartAction } from './AppActions'; export const openChart = (chartData: Popups): OpenChartAction => ({ type: ActionType.OPEN_CHART, chartData }); -export const closeChart = (chartData: Popups): CloseChartAction => ({ type: ActionType.CLOSE_CHART }); +export const closeChart = (): CloseChartAction => ({ type: ActionType.CLOSE_CHART }); diff --git a/frontend/static/redux/mergeSelectors.ts b/frontend/static/redux/mergeSelectors.ts new file mode 100644 index 00000000..466226bd --- /dev/null +++ b/frontend/static/redux/mergeSelectors.ts @@ -0,0 +1,16 @@ +import { ErrorState } from '../repository/GenericRepository'; + +import { Dataset, MergeConfig, MergeConfigType, MergeInstance, MergeState, StackConfig } from './state/MergeState'; + +export const selectInstances = (state: MergeState): MergeInstance[] => state.instances; +export const selectLoading = (state: MergeState): boolean => state.loading; +export const selectLoadingDatasets = (state: MergeState): boolean => state.loadingDatasets; +export const selectAction = (state: MergeState): MergeConfigType => state.action; +export const selectDatasets = (state: MergeState): Dataset[] => state.datasets; +export const selectLoadingError = (state: MergeState): ErrorState | null => state.loadingError; +export const selectMergeError = (state: MergeState): ErrorState | null => state.mergeError; +export const selectMergeConfig = (state: MergeState): MergeConfig => state.mergeConfig; +export const selectStackConfig = (state: MergeState): StackConfig => state.stackConfig; +export const selectShowCode = (state: MergeState): boolean => state.showCode; +export const selectMergeDataId = (state: MergeState): string | null => state.mergeDataId; +export const selectLoadingMerge = (state: MergeState): boolean => state.loadingMerge; diff --git a/frontend/static/redux/selectors.ts b/frontend/static/redux/selectors.ts new file mode 100644 index 00000000..73908979 --- /dev/null +++ b/frontend/static/redux/selectors.ts @@ -0,0 +1,106 @@ +import { createSelector } from '@reduxjs/toolkit'; + +import { RangeSelection } from '../dtale/DataViewerState'; + +import { + AppState, + DataViewerUpdate, + FilteredRanges, + InstanceSettings, + Popups, + PredefinedFilter, + QueryEngine, + RibbonDropdownProps, + SidePanelProps, + ThemeType, + Version, +} from './state/AppState'; + +export const selectDataId = (state: AppState): string => state.dataId; +export const selectAuth = (state: AppState): boolean => state.auth; +export const selectUsername = (state: AppState): string | null => state.username; +export const selectEditedCell = (state: AppState): string | null => state.editedCell; +export const selectIsVSCode = (state: AppState): boolean => state.isVSCode; +export const selectCtrlRows = (state: AppState): number[] | null => state.ctrlRows; +export const selectCtrlCols = (state: AppState): number[] | null => state.ctrlCols; +export const selectIsArcticDB = (state: AppState): number => state.isArcticDB; +export const selectColumnCount = (state: AppState): number => state.columnCount; +export const selectColumnMenuOpen = (state: AppState): boolean => state.columnMenuOpen; +export const selectSelectedCol = (state: AppState): string | null => state.selectedCol; +export const selectSelectedColRef = (state: AppState): HTMLDivElement | null => state.selectedColRef; +export const selectIsPreview = (state: AppState): boolean => state.isPreview; +export const selectRibbonDropdown = (state: AppState): RibbonDropdownProps => state.ribbonDropdown; +export const selectRibbonDropdownVisible = createSelector( + [selectRibbonDropdown], + (ribbonDropdown) => ribbonDropdown.visible, +); +export const selectRibbonDropdownElement = createSelector( + [selectRibbonDropdown], + (ribbonDropdown) => ribbonDropdown.element, +); +export const selectRibbonDropdownName = createSelector([selectRibbonDropdown], (ribbonDropdown) => ribbonDropdown.name); +export const selectSettings = (state: AppState): InstanceSettings => state.settings; +export const selectColumnFilters = createSelector([selectSettings], (settings) => settings?.columnFilters); +export const selectOutlierFilters = createSelector([selectSettings], (settings) => settings?.outlierFilters); +export const selectInvertFilter = createSelector([selectSettings], (settings) => settings?.invertFilter); +export const selectQuery = createSelector([selectSettings], (settings) => settings?.query); +export const selectPredefinedFilters = createSelector([selectSettings], (settings) => settings?.predefinedFilters); +export const selectSortInfo = createSelector([selectSettings], (settings) => settings?.sortInfo); +export const selectHighlightFilter = createSelector([selectSettings], (settings) => settings?.highlightFilter); +export const selectVerticalHeaders = createSelector([selectSettings], (settings) => settings?.verticalHeaders); +export const selectSettingsHideHeaderEditor = createSelector( + [selectSettings], + (settings) => settings?.hide_header_editor, +); +export const selectBackgroundMode = createSelector([selectSettings], (settings) => settings?.backgroundMode); +export const selectRangeHighlight = createSelector([selectSettings], (settings) => settings?.rangeHighlight); +export const selectBaseLockHeaderMenu = (state: AppState): boolean => state.lockHeaderMenu; +export const selectFilteredRanges = (state: AppState): FilteredRanges => state.filteredRanges; +export const selectShowAllHeatmapColumns = (state: AppState): boolean => state.showAllHeatmapColumns; +export const selectChartData = (state: AppState): Popups => state.chartData; +export const selectSidePanel = (state: AppState): SidePanelProps => state.sidePanel; +export const selectSidePanelVisible = createSelector([selectSidePanel], (sidePanel) => sidePanel.visible); +export const selectSidePanelView = createSelector([selectSidePanel], (sidePanel) => sidePanel.view); +export const selectSidePanelColumn = createSelector([selectSidePanel], (sidePanel) => sidePanel.column); +export const selectSidePanelOffset = createSelector([selectSidePanel], (sidePanel) => sidePanel.offset); +export const selectTheme = (state: AppState): ThemeType => state.theme; +export const selectPythonVersion = (state: AppState): Version | null => state.pythonVersion; +export const selectMaxColumnWidth = (state: AppState): number | null => state.maxColumnWidth; +export const selectAllowCellEdits = (state: AppState): boolean | string[] => state.allowCellEdits; +export const selectRowRange = (state: AppState): RangeSelection | null => state.rowRange; +export const selectColumnRange = (state: AppState): RangeSelection | null => state.columnRange; +export const selectRangeSelect = (state: AppState): RangeSelection | null => state.rangeSelect; +export const selectSelectedRow = (state: AppState): number | null => state.selectedRow; +export const selectFormattingOpen = (state: AppState): string | null => state.formattingOpen; +export const selectMenuPinned = (state: AppState): boolean => state.menuPinned; +export const selectMenuOpen = (state: AppState): boolean => state.menuOpen; +export const selectBaseHideHeaderEditor = (state: AppState): boolean => state.hideHeaderEditor; +export const selectHideHeaderEditor = createSelector( + [selectSettingsHideHeaderEditor, selectBaseHideHeaderEditor], + (settingsHideHeaderEditor, hideHeaderEditor) => settingsHideHeaderEditor ?? hideHeaderEditor, +); +export const selectPredefinedFilterConfigs = (state: AppState): PredefinedFilter[] => state.predefinedFilters; +export const selectHideDropRows = (state: AppState): boolean => state.hideDropRows; +export const selectArcticConn = (state: AppState): string => state.arcticConn; +export const selectBaseRibbonMenuOpen = (state: AppState): boolean => state.ribbonMenuOpen; +const selectSettingsLockHeaderMenu = createSelector([selectSettings], (settings) => settings?.lock_header_menu); +export const selectLockHeaderMenu = createSelector( + [selectSettingsLockHeaderMenu, selectBaseLockHeaderMenu], + (settingsLockHeaderMenu, lockHeaderMenu) => settingsLockHeaderMenu ?? lockHeaderMenu, +); +export const selectRibbonMenuOpen = createSelector( + [selectBaseRibbonMenuOpen, selectLockHeaderMenu], + (ribbonMenuOpen, lockHeaderMenu) => ribbonMenuOpen || lockHeaderMenu, +); +export const selectMainTitle = (state: AppState): string | null => state.mainTitle; +export const selectMainTitleFont = (state: AppState): string | null => state.mainTitleFont; +export const selectDataViewerUpdate = (state: AppState): DataViewerUpdate | null => state.dataViewerUpdate; +export const selectMaxRowHeight = (state: AppState): number | null => state.maxRowHeight; +export const selectEditedTextAreaHeight = (state: AppState): number => state.editedTextAreaHeight; +export const selectDragResize = (state: AppState): number | null => state.dragResize; +export const selectXArray = (state: AppState): boolean => state.xarray; +export const selectXArrayDim = (state: AppState): Record => state.xarrayDim; +export const selectIFrame = (state: AppState): boolean => state.iframe; +export const selectLanguage = (state: AppState): string => state.language; +export const selectHideShutdown = (state: AppState): boolean => state.hideShutdown; +export const selectQueryEngine = (state: AppState): QueryEngine => state.queryEngine; diff --git a/frontend/static/sliderUtils.tsx b/frontend/static/sliderUtils.tsx index 6ac5f825..d79e6d58 100644 --- a/frontend/static/sliderUtils.tsx +++ b/frontend/static/sliderUtils.tsx @@ -1,11 +1,16 @@ import * as React from 'react'; import ReactSlider from 'react-slider'; -import styled from 'styled-components'; +import { default as styled, WebTarget } from 'styled-components'; + +/** Component properties for HTML element with reference */ +interface HTMLPropsWithRefCallback extends React.HTMLProps { + ref: React.RefCallback; +} /** Component properties for styled div */ -type StyledDivProps = Partial, 'children' | 'ref' | 'as'>>; +type StyledDivProps = HTMLPropsWithRefCallback; -export const StyledSlider = styled(ReactSlider)` +export const StyledSlider = styled(ReactSlider as WebTarget)` width: 100%; height: 25px; `; @@ -38,6 +43,7 @@ export const StyledExportThumb = styled.div` /** State for styled components */ interface StyledState { index: number; + value: number; valueNow: number; } diff --git a/frontend/yarn.lock b/frontend/yarn.lock index ea83e9d2..9c8c6858 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@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" @@ -15,6 +20,30 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/cli@^7.21.0": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.22.9.tgz#501b3614aeda7399371f6d5991404f069b059986" + integrity sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + commander "^4.0.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.1.0" + glob "^7.2.0" + make-dir "^2.1.0" + slash "^2.0.0" + optionalDependencies: + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" + chokidar "^3.4.0" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" @@ -22,38 +51,50 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": +"@babel/code-frame@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + +"@babel/compat-data@^7.20.0": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== -"@babel/compat-data@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" - integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== - -"@babel/core@7.20.12": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + +"@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" + integrity sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg== + +"@babel/core@7.22.9", "@babel/core@^7.18.9", "@babel/core@^7.21.0": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" + integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.8" + "@babel/types" "^7.22.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" - semver "^6.3.0" + semver "^6.3.1" -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.7.5": +"@babel/core@^7.11.6", "@babel/core@^7.12.3": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== @@ -74,16 +115,16 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/eslint-parser@7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4" - integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ== +"@babel/eslint-parser@7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.9.tgz#75f8aa978d1e76c87cc6f26c1ea16ae58804d390" + integrity sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" - semver "^6.3.0" + semver "^6.3.1" -"@babel/generator@^7.12.11", "@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": +"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": version "7.20.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== @@ -92,31 +133,48 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" - integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== +"@babel/generator@^7.22.7": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" + integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.22.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/generator@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" + integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== + dependencies: + "@babel/types" "^7.22.5" "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.18.6": +"@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" + integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== + dependencies: + "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0": +"@babel/helper-compilation-targets@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== @@ -126,31 +184,59 @@ browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" + integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.5" + browserslist "^4.21.9" lru-cache "^5.1.1" - semver "^6.3.0" + semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz#3c08a5b5417c7f07b5cf3dfb6dc79cbec682e8c2" - integrity sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA== +"@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" + integrity sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.19.1" - "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/compat-data" "^7.22.6" + "@babel/helper-validator-option" "^7.22.5" + "@nicolo-ribaudo/semver-v6" "^6.3.3" + browserslist "^4.21.9" + lru-cache "^5.1.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" + integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.6.tgz#58564873c889a6fea05a538e23f9f6d201f10950" + integrity sha512-iwdzgtSiBxF6ni6mzVnZCF3xt5qE6cEA0J7nFt8QOAWZ0zjCFceEgpn3vtb2V7WFR6QzP2jmIFOHMTRo7eNJjQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@nicolo-ribaudo/semver-v6" "^6.3.3" + +"@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== @@ -158,31 +244,37 @@ "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.1.0" -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== +"@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.6.tgz#87afd63012688ad792de430ceb3b6dc28e4e7a40" + integrity sha512-nBookhLKxAWo/TUCmhnaEJyLz2dekjQvv5SRpE9epWQBcpedWLKt8aZdsuT9XV5ovzR3fENLjRXVT0GsSlGGhA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@nicolo-ribaudo/semver-v6" "^6.3.3" + regexpu-core "^5.3.1" + +"@babel/helper-define-polyfill-provider@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz#af1429c4a83ac316a6a8c2cc8ff45cb5d2998d3a" + integrity sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A== dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": +"@babel/helper-function-name@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== @@ -190,6 +282,14 @@ "@babel/template" "^7.18.10" "@babel/types" "^7.19.0" +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" @@ -197,21 +297,35 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": +"@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" + integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.2": +"@babel/helper-module-imports@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-transforms@^7.20.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== @@ -225,66 +339,99 @@ "@babel/traverse" "^7.20.1" "@babel/types" "^7.20.2" -"@babel/helper-module-transforms@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" - integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-module-transforms@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" + integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-module-transforms@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" + integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.5" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== -"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" - integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.19.1" - "@babel/types" "^7.19.0" - -"@babel/helper-simple-access@^7.19.4", "@babel/helper-simple-access@^7.20.2": +"@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-remap-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" + integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-wrap-function" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-replace-supers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" + integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-replace-supers@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" + integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.20.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== dependencies: "@babel/types" "^7.20.2" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== dependencies: - "@babel/types" "^7.20.0" + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -293,30 +440,52 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-string-parser@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helper-wrap-function@^7.18.9": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" - integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== +"@babel/helper-validator-option@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + +"@babel/helper-wrap-function@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" + integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" "@babel/helpers@^7.20.1": version "7.20.1" @@ -327,14 +496,14 @@ "@babel/traverse" "^7.20.1" "@babel/types" "^7.20.0" -"@babel/helpers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" - integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== +"@babel/helpers@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" + integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.6" + "@babel/types" "^7.22.5" "@babel/highlight@^7.18.6": version "7.18.6" @@ -345,41 +514,47 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2", "@babel/parser@^7.7.0": version "7.20.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== -"@babel/parser@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" - integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== +"@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" + integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" - integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" + integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.5" -"@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz#352f02baa5d69f4e7529bdac39aaa02d41146af9" - integrity sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g== +"@babel/plugin-external-helpers@^7.18.6": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.22.5.tgz#92b0705b74756123f289388320e0e12c407fdf9a" + integrity sha512-ngnNEWxmykPk82mH4ajZT0qTztr3Je6hrMuKAslZVM8G1YZTENJSYwrIGtt6KOtznug3exmAtF4so/nPqJuA4A== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" @@ -389,110 +564,23 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" - integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" - integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz#a556f59d555f06961df1e572bb5eca864c84022d" - integrity sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ== +"@babel/plugin-proposal-object-rest-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.1" + "@babel/plugin-transform-parameters" "^7.20.7" -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" - integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -542,21 +630,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" - integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== +"@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== +"@babel/plugin-syntax-import-assertions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" + integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -570,13 +665,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.7.2": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -633,73 +735,124 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" + integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-typescript@^7.7.2": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-transform-arrow-functions@^7.18.6": +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" - integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" - integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== +"@babel/plugin-transform-arrow-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== +"@babel/plugin-transform-async-generator-functions@^7.22.7": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" + integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz#f59b1767e6385c663fd0bce655db6ca9c8b236ed" - integrity sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ== +"@babel/plugin-transform-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-classes@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz#c0033cf1916ccf78202d04be4281d161f6709bb2" - integrity sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g== +"@babel/plugin-transform-block-scoped-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.19.1" - "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" + integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" + integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" + integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" + integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" - integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== +"@babel/plugin-transform-computed-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz#c23741cfa44ddd35f5e53896e88c75331b8b2792" - integrity sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw== +"@babel/plugin-transform-destructuring@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" + integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dotall-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== @@ -707,271 +860,370 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== +"@babel/plugin-transform-duplicate-keys@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== +"@babel/plugin-transform-dynamic-import@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" + integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-flow-strip-types@^7.18.6": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz#e9e8606633287488216028719638cbbb2f2dde8f" - integrity sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg== +"@babel/plugin-transform-exponentiation-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" + integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-flow" "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-for-of@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" - integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== +"@babel/plugin-transform-export-namespace-from@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" + integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== +"@babel/plugin-transform-flow-strip-types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" + integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== +"@babel/plugin-transform-for-of@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" + integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== +"@babel/plugin-transform-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz#aca391801ae55d19c4d8d2ebfeaa33df5f2a2cbd" - integrity sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg== +"@babel/plugin-transform-json-strings@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" + integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== dependencies: - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-modules-commonjs@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c" - integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ== +"@babel/plugin-transform-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== dependencies: - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-simple-access" "^7.19.4" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz#59e2a84064b5736a4471b1aa7b13d4431d327e0d" - integrity sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ== +"@babel/plugin-transform-logical-assignment-operators@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" + integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== +"@babel/plugin-transform-member-expression-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" - integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== +"@babel/plugin-transform-modules-amd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" + integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== +"@babel/plugin-transform-modules-commonjs@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" + integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== +"@babel/plugin-transform-modules-systemjs@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" + integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" -"@babel/plugin-transform-parameters@^7.20.1": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz#7b3468d70c3c5b62e46be0a47b6045d8590fb748" - integrity sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA== +"@babel/plugin-transform-modules-umd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-display-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" - integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== +"@babel/plugin-transform-new-target@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" + integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx-development@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" - integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" + integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== dependencies: - "@babel/plugin-transform-react-jsx" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-react-jsx@^7.18.6": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" - integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== +"@babel/plugin-transform-numeric-separator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" + integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-react-pure-annotations@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" - integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== +"@babel/plugin-transform-object-rest-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" + integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/compat-data" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== +"@babel/plugin-transform-object-super@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== +"@babel/plugin-transform-optional-catch-binding@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" + integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== +"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564" + integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-spread@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" - integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" + integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" + integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== +"@babel/plugin-transform-private-property-in-object@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" + integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== +"@babel/plugin-transform-property-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.18.6": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz#91515527b376fc122ba83b13d70b01af8fe98f3f" - integrity sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag== +"@babel/plugin-transform-react-display-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" + integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-transform-react-jsx" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== +"@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" + integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.5" -"@babel/preset-env@7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== +"@babel/plugin-transform-react-pure-annotations@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" + integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" + integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-reserved-words@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-shorthand-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz#5c0f7adfc1b5f38c4dbc8f79b1f0f8074134bd7d" + integrity sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.22.5" + +"@babel/plugin-transform-unicode-escapes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" + integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" + integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" + integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@7.22.9", "@babel/preset-env@^7.20.2": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" + integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@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-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@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" @@ -981,54 +1233,71 @@ "@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.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.7" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.5" + "@babel/plugin-transform-classes" "^7.22.6" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" + "@babel/plugin-transform-numeric-separator" "^7.22.5" + "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.6" + "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-flow@7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.18.6.tgz#83f7602ba566e72a9918beefafef8ef16d2810cb" - integrity sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-flow-strip-types" "^7.18.6" + "@babel/types" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.4" + babel-plugin-polyfill-corejs3 "^0.8.2" + babel-plugin-polyfill-regenerator "^0.5.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-flow@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.5.tgz#876f24ab6b38bd79703a93f32020ca2162312784" + integrity sha512-ta2qZ+LSiGCrP5pgcGt8xMnnkXQrq8Sa4Ulhy06BOlF5QbLw9q5hIx7bn5MrsvyTGAfh6kTOo07Q+Pfld/8Y5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-transform-flow-strip-types" "^7.22.5" "@babel/preset-modules@^0.1.5": version "0.1.5" @@ -1041,31 +1310,33 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" - integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-react-display-name" "^7.18.6" - "@babel/plugin-transform-react-jsx" "^7.18.6" - "@babel/plugin-transform-react-jsx-development" "^7.18.6" - "@babel/plugin-transform-react-pure-annotations" "^7.18.6" - -"@babel/preset-typescript@7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" - integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-typescript" "^7.18.6" - -"@babel/register@7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c" - integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw== +"@babel/preset-react@7.22.5", "@babel/preset-react@^7.18.6": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6" + integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-transform-react-display-name" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.22.5" + +"@babel/preset-typescript@7.22.5", "@babel/preset-typescript@^7.21.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" + integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-typescript" "^7.22.5" + +"@babel/register@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.5.tgz#e4d8d0f615ea3233a27b5c6ada6750ee59559939" + integrity sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" @@ -1073,17 +1344,22 @@ pirates "^4.0.5" source-map-support "^0.5.16" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== dependencies: regenerator-runtime "^0.13.10" -"@babel/runtime@^7.20.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" - integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== +"@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" + integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== dependencies: regenerator-runtime "^0.13.11" @@ -1096,16 +1372,32 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/template@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" +"@babel/template@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/traverse@^7.18.9", "@babel/traverse@^7.21.2", "@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": + version "7.22.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" + integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.7" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/types" "^7.22.5" + debug "^4.1.0" + globals "^11.1.0" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.20.1", "@babel/traverse@^7.7.0": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== @@ -1121,39 +1413,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5" - integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.20.7": - version "7.20.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.8.tgz#e3a23eb04af24f8bbe8a8ba3eef6155b77df0b08" - integrity sha512-/RNkaYDeCy4MjyV70+QkSHhxbvj2JO/5Ft2Pa880qJOG8tWrqcT/wXUuCCv43yogfqPzHL77Xu101KQPf4clnQ== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== @@ -1162,13 +1422,13 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== +"@babel/types@^7.18.9", "@babel/types@^7.20.7", "@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1176,84 +1436,60 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@blueprintjs/colors@^4.1.10": - version "4.1.10" - resolved "https://registry.yarnpkg.com/@blueprintjs/colors/-/colors-4.1.10.tgz#908ce1483ccf330b4d7d30e82091b3d6fbc26020" - integrity sha512-p1rgfijpZi+r2xskyRi3uF8DRq08rb26u9Gymi0p4ZNZq/iLJQ1Fj1jfT8yh2yc6eCfs8GlH6iDNdU387wEK3w== +"@blueprintjs/colors@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@blueprintjs/colors/-/colors-5.0.1.tgz#d8dae32b6335a7b3c0521e1f28422f4c8c380da1" + integrity sha512-Lz3TSHJBL7+Ar/pQS15ewbNMMZc9p0CyBTPvICx4sWVH2STIJrvh05f+rdOBsKyx+FdTGTBoISyw67ZOSXvWVA== + dependencies: + tslib "~2.5.0" -"@blueprintjs/core@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-4.13.0.tgz#ef55b02709170fc4429607c3b7cc2271bc6e9b85" - integrity sha512-LGpSxYf94CFJirOzsPyai0JaJcS2csKEhpyfrLnMb8ZrSPjMNyNx/5KZTKoZ0f7/GO7hrcuzpMBOkxQxcrVExA== +"@blueprintjs/core@^5.1.3": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-5.1.3.tgz#05627405f20dcef0fa4ce6baef30009792074030" + integrity sha512-RCJgFJGieZgHKu3uUxa4klDx+mCxzibYL0YxmZ9NFRd3vwK9Bsanmr/Fz04Q7OM4olK76qebNjtvjRHVsUv3DA== dependencies: - "@blueprintjs/colors" "^4.1.10" - "@blueprintjs/icons" "^4.11.0" - "@juggle/resize-observer" "^3.4.0" - "@types/dom4" "^2.0.2" + "@blueprintjs/colors" "^5.0.1" + "@blueprintjs/icons" "^5.1.2" + "@popperjs/core" "^2.11.7" classnames "^2.3.1" - dom4 "^2.1.5" normalize.css "^8.0.1" - popper.js "^1.16.1" - react-popper "^1.3.11" + react-popper "^2.3.0" react-transition-group "^4.4.5" - tslib "~2.3.1" + tslib "~2.5.0" -"@blueprintjs/datetime2@^0.9.6": - version "0.9.6" - resolved "https://registry.yarnpkg.com/@blueprintjs/datetime2/-/datetime2-0.9.6.tgz#cf532c2f704bddc7da39802f08e49aa132d3c402" - integrity sha512-npO942mN454MKudbQ25176GBBSo+T2eOIKaSmIZk4YM2lG4ZgSK7IH6PPY8voKj3AWxWd9W7Gvz8ANtf8ZmKYQ== +"@blueprintjs/datetime@5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@blueprintjs/datetime/-/datetime-5.0.5.tgz#661a8bed4b3f0d6de48064fe728e896430c105e7" + integrity sha512-yaHmvrglRkuKnEGlu2ZQ9oDAnGNoEiTIWYVwsc/cJmyo5bEeAZGOPAVpuJWUscjJNc8TzZJfOtN1n+aUcCCBQQ== dependencies: - "@blueprintjs/core" "^4.13.0" - "@blueprintjs/datetime" "^4.4.8" - "@blueprintjs/popover2" "^1.10.2" - "@blueprintjs/select" "^4.8.12" + "@blueprintjs/core" "^5.1.3" + "@blueprintjs/icons" "^5.1.2" + "@blueprintjs/select" "^5.0.5" classnames "^2.3.1" date-fns "^2.28.0" date-fns-tz "^1.3.7" lodash "^4.17.21" - tslib "~2.3.1" - -"@blueprintjs/datetime@4.4.8", "@blueprintjs/datetime@^4.4.8": - version "4.4.8" - resolved "https://registry.yarnpkg.com/@blueprintjs/datetime/-/datetime-4.4.8.tgz#a26fa0b4db0fc7d4a72bf237b4e6e5c391574cc0" - integrity sha512-FbIOp8Snq6ZFY+JBmOLu7e0j/TF1enjxGGxfowzKbi+PtZDqrcpvRFo8tHVPv1Km30A1LdSw+EGDHtscomjwEw== - dependencies: - "@blueprintjs/core" "^4.13.0" - classnames "^2.3.1" react-day-picker "7.4.9" - tslib "~2.3.1" + tslib "~2.5.0" -"@blueprintjs/icons@^4.11.0": - version "4.11.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-4.11.0.tgz#2ad5dc857d2d61c2f00211a28552fd4b7cca301c" - integrity sha512-RkWwJb75hVg/OXh5QqWbKQxeAUY0LNds3fj/gCkneIyKKURNRk4yxIcdoUNBBYvINHp2BR53SRug8QA5bdFGiA== +"@blueprintjs/icons@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-5.1.2.tgz#96f2033f6028458716e8095c5d8fb530b6a49200" + integrity sha512-lPvEBRw8/l5Wiy9SUh1BPs1NUG1CAzanH9eRIi47q+qeNhZbdxn0ADIJkSerIwyZTJQnKubOFvy3WlJMMzfGYA== dependencies: change-case "^4.1.2" classnames "^2.3.1" - tslib "~2.3.1" + tslib "~2.5.0" -"@blueprintjs/popover2@^1.10.2": - version "1.10.2" - resolved "https://registry.yarnpkg.com/@blueprintjs/popover2/-/popover2-1.10.2.tgz#88bd233fc87db838ba337ad9c6a55566cef8678a" - integrity sha512-+7qBKpiN10tfRE1Rz2RKTzNoweALQ4nlAWTmXjK+gEieEN7esXrhQ4kiK6qY3bRBb4Yi7cJ4MQ3PpJ1E4s/2RQ== +"@blueprintjs/select@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-5.0.5.tgz#2ab93c11be944b880db9e9ebf21ccf416c67987b" + integrity sha512-8SmDCGrMRI7omhSKMeJ2GnIDmsItozbh11+D+O4NBLB2PnmflkrXu6QXYnO1pcsPDEolOR5OJiqKn/E+2fBXGA== dependencies: - "@blueprintjs/core" "^4.13.0" - "@juggle/resize-observer" "^3.4.0" - "@popperjs/core" "^2.11.6" + "@blueprintjs/core" "^5.1.3" + "@blueprintjs/icons" "^5.1.2" classnames "^2.3.1" - dom4 "^2.1.5" - react-popper "^2.3.0" - tslib "~2.3.1" - -"@blueprintjs/select@^4.8.12": - version "4.8.12" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-4.8.12.tgz#b71673f11859808d1712217a3ef0333b65520604" - integrity sha512-0ahf8zpvyQJp1a6PChpy8rl8RF24/YYbJSnDdMxesERER0iOprQNt8+/BQDWUz+PYpeWz+6lIgHe8TJBvxHQqw== - dependencies: - "@blueprintjs/core" "^4.13.0" - "@blueprintjs/popover2" "^1.10.2" - classnames "^2.3.1" - tslib "~2.3.1" + tslib "~2.5.0" "@discoveryjs/json-ext@^0.5.0": version "0.5.7" @@ -1294,18 +1530,23 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== -"@emotion/is-prop-valid@^1.1.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.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== +"@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.8.1": version "11.10.5" resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.5.tgz#95fff612a5de1efa9c0d535384d3cfa115fe175d" @@ -1336,16 +1577,6 @@ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.1.tgz#0767e0305230e894897cadb6c8df2c51e61a6c2c" integrity sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA== -"@emotion/stylis@^0.8.4": - version "0.8.5" - resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" - integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== - -"@emotion/unitless@^0.7.4": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" - integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== - "@emotion/unitless@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" @@ -1366,23 +1597,35 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== -"@es-joy/jsdoccomment@~0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz#c37db40da36e4b848da5fd427a74bae3b004a30f" - integrity sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg== +"@es-joy/jsdoccomment@~0.39.4": + version "0.39.4" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz#6b8a62e9b3077027837728818d3c4389a898b392" + integrity sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg== dependencies: comment-parser "1.3.1" - esquery "^1.4.0" - jsdoc-type-pratt-parser "~3.1.0" + esquery "^1.5.0" + jsdoc-type-pratt-parser "~4.0.0" -"@eslint/eslintrc@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== +"@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" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" + integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1390,6 +1633,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@8.44.0": + version "8.44.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" + integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== + "@floating-ui/core@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.0.2.tgz#d06a66d3ad8214186eda2432ac8b8d81868a571f" @@ -1402,15 +1650,15 @@ dependencies: "@floating-ui/core" "^1.0.2" -"@fortawesome/fontawesome-free@6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.1.tgz#344baf6ff9eaad7a73cff067d8c56bfc11ae5304" - integrity sha512-viouXhegu/TjkvYQoiRZK3aax69dGXxgEjpvZW81wIJdxm5Fnvp3VVIP4VHKqX4SvFw6qpmkILkD4RJWAdrt7A== +"@fortawesome/fontawesome-free@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz#1ee0c174e472c84b23cb46c995154dc383e3b4fe" + integrity sha512-0NyytTlPJwB/BF5LtRV8rrABDbe3TdTXqNB3PdZ+UUUZAEIrdOJdmABqKjt4AXwIoJNaRVVZEXxpNrqvE1GAYQ== -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1426,14 +1674,6 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@hypnosphi/create-react-context@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz#f8bfebdc7665f5d426cba3753e0e9c7d3154d7c6" - integrity sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A== - dependencies: - gud "^1.0.0" - warning "^4.0.3" - "@icons/material@^0.2.4": version "0.2.4" resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" @@ -1450,66 +1690,66 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": +"@istanbuljs/schema@^0.1.2": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" - integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== +"@jest/console@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.1.tgz#b48ba7b9c34b51483e6d590f46e5837f1ab5f639" + integrity sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.6.1" + jest-util "^29.6.1" slash "^3.0.0" -"@jest/core@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" - integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== +"@jest/core@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.1.tgz#fac0d9ddf320490c93356ba201451825231e95f6" + integrity sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ== dependencies: - "@jest/console" "^29.3.1" - "@jest/reporters" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.6.1" + "@jest/reporters" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.2.0" - jest-config "^29.3.1" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-resolve-dependencies "^29.3.1" - jest-runner "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - jest-watcher "^29.3.1" + jest-changed-files "^29.5.0" + jest-config "^29.6.1" + jest-haste-map "^29.6.1" + jest-message-util "^29.6.1" + jest-regex-util "^29.4.3" + jest-resolve "^29.6.1" + jest-resolve-dependencies "^29.6.1" + jest-runner "^29.6.1" + jest-runtime "^29.6.1" + jest-snapshot "^29.6.1" + jest-util "^29.6.1" + jest-validate "^29.6.1" + jest-watcher "^29.6.1" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.6.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== +"@jest/environment@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.1.tgz#ee358fff2f68168394b4a50f18c68278a21fe82f" + integrity sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A== dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/fake-timers" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.3.1" + jest-mock "^29.6.1" "@jest/expect-utils@^29.3.1": version "29.3.1" @@ -1518,47 +1758,54 @@ dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== +"@jest/expect-utils@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.1.tgz#ab83b27a15cdd203fe5f68230ea22767d5c3acc5" + integrity sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw== dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" + jest-get-type "^29.4.3" -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== +"@jest/expect@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.1.tgz#fef18265188f6a97601f1ea0a2912d81a85b4657" + integrity sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg== dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" + expect "^29.6.1" + jest-snapshot "^29.6.1" + +"@jest/fake-timers@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.1.tgz#c773efddbc61e1d2efcccac008139f621de57c69" + integrity sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg== + dependencies: + "@jest/types" "^29.6.1" + "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.6.1" + jest-mock "^29.6.1" + jest-util "^29.6.1" -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== +"@jest/globals@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.1.tgz#c8a8923e05efd757308082cc22893d82b8aa138f" + integrity sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" + "@jest/environment" "^29.6.1" + "@jest/expect" "^29.6.1" + "@jest/types" "^29.6.1" + jest-mock "^29.6.1" -"@jest/reporters@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" - integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== +"@jest/reporters@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.1.tgz#3325a89c9ead3cf97ad93df3a427549d16179863" + integrity sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/console" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" + "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -1570,9 +1817,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-message-util "^29.6.1" + jest-util "^29.6.1" + jest-worker "^29.6.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -1585,55 +1832,62 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/source-map@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" - integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== +"@jest/schemas@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" + integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.0.tgz#bd34a05b5737cb1a99d43e1957020ac8e5b9ddb1" + integrity sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA== dependencies: - "@jridgewell/trace-mapping" "^0.3.15" + "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" - integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== +"@jest/test-result@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.1.tgz#850e565a3f58ee8ca6ec424db00cb0f2d83c36ba" + integrity sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw== dependencies: - "@jest/console" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.6.1" + "@jest/types" "^29.6.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" - integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== +"@jest/test-sequencer@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.1.tgz#e3e582ee074dd24ea9687d7d1aaf05ee3a9b068e" + integrity sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg== dependencies: - "@jest/test-result" "^29.3.1" + "@jest/test-result" "^29.6.1" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.6.1" slash "^3.0.0" -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== +"@jest/transform@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.1.tgz#acb5606019a197cb99beda3c05404b851f441c92" + integrity sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/types" "^29.6.1" + "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" + jest-haste-map "^29.6.1" + jest-regex-util "^29.4.3" + jest-util "^29.6.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^4.0.1" + write-file-atomic "^4.0.2" "@jest/types@^29.3.1": version "29.3.1" @@ -1647,6 +1901,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.1.tgz#ae79080278acff0a6af5eb49d063385aaa897bf2" + integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== + dependencies: + "@jest/schemas" "^29.6.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@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" @@ -1674,10 +1940,10 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" @@ -1687,7 +1953,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -1695,16 +1961,24 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@juggle/resize-observer@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" - integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" "@kurkle/color@^0.3.0": version "0.3.1" resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.1.tgz#ef72bc8022ccf77cdd2715097f062ee591ec145c" integrity sha512-hW0GwZj06z/ZFUW2Espl7toVDjghJN+EKqyXzPSV8NV89d5BYp5rRMBJoc+aUN0x5OXDMeRQHazejr2Xmqj2tw== +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": + version "2.1.8-no-fsevents.3" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" @@ -1712,6 +1986,11 @@ dependencies: eslint-scope "5.1.1" +"@nicolo-ribaudo/semver-v6@^6.3.3": + version "6.3.3" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" + integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1733,48 +2012,65 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@popperjs/core@^2.11.5", "@popperjs/core@^2.11.6", "@popperjs/core@^2.9.0": +"@pkgr/utils@^2.3.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" + integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== + dependencies: + cross-spawn "^7.0.3" + fast-glob "^3.3.0" + is-glob "^4.0.3" + open "^9.1.0" + picocolors "^1.0.0" + tslib "^2.6.0" + +"@popperjs/core@^2.11.6": version "2.11.6" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== -"@react-aria/ssr@^3.2.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.4.0.tgz#a2b9a170214f56e41d3c4c933d0d8fcffa07a12a" - integrity sha512-qzuGk14/fUyUAoW/EBwgFcuMkVNXJVGlezTgZ1HovpCZ+p9844E7MUFHE7CuzFzPEIkVeqhBNIoIu+VJJ8YCOA== +"@popperjs/core@^2.11.7", "@popperjs/core@^2.9.0": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@react-aria/ssr@^3.5.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.7.0.tgz#7eda2964ab792dc1c3a1fdacbf5bfb185590e9a5" + integrity sha512-bfufjg4ESE5giN+Fxj1XIzS5f/YIhqcGc+Ve+vUUKU8xZ8t/Xtjlv8F3kjqDBQdk//n3mluFY7xG1wQVB9rMLQ== dependencies: - "@babel/runtime" "^7.6.2" + "@swc/helpers" "^0.5.0" -"@reduxjs/toolkit@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.1.tgz#4c34dc4ddcec161535288c60da5c19c3ef15180e" - integrity sha512-HikrdY+IDgRfRYlCTGUQaiCxxDDgM1mQrRbZ6S1HFZX5ZYuJ4o8EstNmhTwHdPl2rTmLxzwSu0b3AyeyTlR+RA== +"@reduxjs/toolkit@^1.9.5": + version "1.9.5" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.5.tgz#d3987849c24189ca483baa7aa59386c8e52077c4" + integrity sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ== dependencies: - immer "^9.0.16" - redux "^4.2.0" + immer "^9.0.21" + redux "^4.2.1" redux-thunk "^2.4.2" - reselect "^4.1.7" + reselect "^4.1.8" -"@restart/hooks@^0.4.6", "@restart/hooks@^0.4.7": - version "0.4.7" - resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.7.tgz#d79ca6472c01ce04389fc73d4a79af1b5e33cd39" - integrity sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A== +"@restart/hooks@^0.4.9": + version "0.4.10" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.10.tgz#651741c7965738650e8a2c3d5624a85892f05376" + integrity sha512-HVZhYHb+9xnN6vDPyiTmw6N4V5wD9tatL3y0zpHFeeatP1ooOD1edzd3MnJCXYlb3OeleDg+Vv16EikGrH57eA== dependencies: - dequal "^2.0.2" + dequal "^2.0.3" -"@restart/ui@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.4.1.tgz#c9057915f0708c411824eeb16c03d0108c0208d2" - integrity sha512-J7wFOx2DcmkBqCqiZgDsggLO7faiNh4Nv1/v80FmbRgP+MYpwaVDKKXLC69DA4+ejgNIsBP5ORtC74EZqO1j8A== +"@restart/ui@^1.6.3": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.6.6.tgz#3481e2eaf15d7cae55bb2f518624e10d19c75800" + integrity sha512-eC3puKuWE1SRYbojWHXnvCNHGgf3uzHCb6JOhnF4OXPibOIPEkR1sqDSkL643ydigxwh+ruCa1CmYHlzk7ikKA== dependencies: - "@babel/runtime" "^7.18.3" - "@popperjs/core" "^2.11.5" - "@react-aria/ssr" "^3.2.0" - "@restart/hooks" "^0.4.7" + "@babel/runtime" "^7.21.0" + "@popperjs/core" "^2.11.6" + "@react-aria/ssr" "^3.5.0" + "@restart/hooks" "^0.4.9" "@types/warning" "^3.0.0" - dequal "^2.0.2" + dequal "^2.0.3" dom-helpers "^5.2.0" - uncontrollable "^7.2.1" + uncontrollable "^8.0.1" warning "^4.0.3" "@sgratzl/boxplots@^1.3.0": @@ -1782,10 +2078,10 @@ resolved "https://registry.yarnpkg.com/@sgratzl/boxplots/-/boxplots-1.3.0.tgz#c9063d98e33a15f880cf4bd3531be71497e2a94e" integrity sha512-2BRWv+WOH58pwzSgP50buoXgxQic+4auz3BF0wiIUXS8D3QGkdBNgsNdQO1754Tm/0uEwly0R3WaCiGnoYWcmA== -"@sgratzl/chartjs-chart-boxplot@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@sgratzl/chartjs-chart-boxplot/-/chartjs-chart-boxplot-4.1.0.tgz#58757c83c1b5102fbee26a63c2f014f8e7d1f833" - integrity sha512-fhQ22hES8Ej5vBNunmLGEUcDMRctPzJNUMzRtqUVMh3xIgHYNhXcPhzRBymEbsB/UGMkknoIXsaMR13vAWudeg== +"@sgratzl/chartjs-chart-boxplot@4.2.4": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@sgratzl/chartjs-chart-boxplot/-/chartjs-chart-boxplot-4.2.4.tgz#3fefd56b53bc4efff6e1fb0ac270898bd2e963cd" + integrity sha512-Est6KaqmJLjmii9/5CYTFyF270ZT3/I726pGg1fopafkqIfGaH30kQWr73BpsqubHd+IMNOXGOg2NXSMbjk4NA== dependencies: "@sgratzl/boxplots" "^1.3.0" @@ -1794,21 +2090,33 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== -"@sinonjs/commons@^1.7.0": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.5.tgz#e280c94c95f206dcfd5aca00a43f2156b758c764" - integrity sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" + integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: - "@sinonjs/commons" "^1.7.0" + "@sinonjs/commons" "^3.0.0" -"@testing-library/dom@>=7", "@testing-library/dom@^8.5.0": +"@swc/helpers@^0.5.0": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" + +"@testing-library/dom@>=7": version "8.19.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.19.0.tgz#bd3f83c217ebac16694329e413d9ad5fdcfd785f" integrity sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A== @@ -1822,10 +2130,24 @@ lz-string "^1.4.4" 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/dom@^9.0.0": + version "9.3.1" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.1.tgz#8094f560e9389fb973fe957af41bf766937a9ee9" + integrity sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.1.3" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" + integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== dependencies: "@adobe/css-tools" "^4.0.1" "@babel/runtime" "^7.9.2" @@ -1837,13 +2159,13 @@ lodash "^4.17.15" redent "^3.0.0" -"@testing-library/react@13.4.0": - version "13.4.0" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-13.4.0.tgz#6a31e3bf5951615593ad984e96b9e5e2d9380966" - integrity sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw== +"@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.5.0" + "@testing-library/dom" "^9.0.0" "@types/react-dom" "^18.0.0" "@testing-library/user-event@14.4.3": @@ -1861,13 +2183,29 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== +"@types/aria-query@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" + integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== + "@types/babel__core@^7.1.14": version "7.1.20" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__core@^7.18.0": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" + integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" @@ -1894,10 +2232,17 @@ dependencies: "@babel/types" "^7.3.0" -"@types/chroma-js@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-2.1.4.tgz#52e3a8453000cdb9ad76357c2c47dbed702d136f" - integrity sha512-l9hWzP7cp7yleJUI7P2acmpllTJNYf5uU6wh50JzSIZt3fFHe+w2FM6w9oZGBTYzjjm2qHdnQvI+fF/JF/E5jQ== +"@types/babel__traverse@^7.18.0": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" + integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== + dependencies: + "@babel/types" "^7.20.7" + +"@types/chroma-js@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-2.4.0.tgz#476a16ae848c77478079d6749236fdb98837b92c" + integrity sha512-JklMxityrwjBTjGY2anH8JaTx3yjRU3/sEHSblLH1ba5lqcSh1LnImXJZO5peJfXyqKYWjHTGy4s5Wz++hARrw== "@types/cross-spawn@6.0.2": version "6.0.2" @@ -1906,10 +2251,10 @@ dependencies: "@types/node" "*" -"@types/dom4@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.2.tgz#6495303f049689ce936ed328a3e5ede9c51408ee" - integrity sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g== +"@types/doctrine@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@types/doctrine/-/doctrine-0.0.5.tgz#9768264221e8fd422e4989c8cfdab2ff781f4eb6" + integrity sha512-JJwEeFy8Sl9ctiugU4h4DGN9hCB47oyhUkM2H8g8xZr4tHTEXtmV4U6krKrU8Ng0S7RlG/J7fkta1rGu3pq+YQ== "@types/eslint-scope@^3.7.3": version "3.7.4" @@ -1932,10 +2277,10 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/glob@^7.1.1": version "7.2.0" @@ -1994,10 +2339,10 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/jest@29.2.5": - version "29.2.5" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.5.tgz#c27f41a9d6253f288d1910d3c5f09484a56b73c0" - integrity sha512-H2cSxkKgVmqNHXP7TC2L/WUorrZu8ZigyRywfVzv6EyBlxj39n4C00hjXYQWsbwqgElaj/CiAeSRmk5GoaKTgw== +"@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== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -2016,6 +2361,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/json-schema@^7.0.12": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -2041,10 +2391,10 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/plotly.js@2.12.11": - version "2.12.11" - resolved "https://registry.yarnpkg.com/@types/plotly.js/-/plotly.js-2.12.11.tgz#25a28151e2208dcac6b86c7150494d056fd5ec5f" - integrity sha512-FouDGLsFVFTBqedZSUK4LjPYm1HYRJeGfIideEhgsUu4htNmLGsVbbH7SUaCljYKbiZkeCCWinvVYJe8o3m6og== +"@types/plotly.js@2.12.24": + version "2.12.24" + resolved "https://registry.yarnpkg.com/@types/plotly.js/-/plotly.js-2.12.24.tgz#9bb8b12a92004d4bd6f93d69dff92e963bfa3d72" + integrity sha512-ahK4MWKztbFLSqMf8nUscMe60xF9jsFtQqsk0BTmUqkdnlR1a8UcbhrmPhKyzAnZ2e1kqUMamLPooyZA6GpUZg== "@types/prettier@^2.1.5": version "2.7.1" @@ -2069,10 +2419,10 @@ "@types/react" "*" "@types/reactcss" "*" -"@types/react-dom@18.0.10": - version "18.0.10" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.10.tgz#3b66dec56aa0f16a6cc26da9e9ca96c35c0b4352" - integrity sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg== +"@types/react-dom@18.2.7": + version "18.2.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" + integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== dependencies: "@types/react" "*" @@ -2107,27 +2457,34 @@ dependencies: "@types/react" "*" -"@types/react-syntax-highlighter@15.5.6": - version "15.5.6" - resolved "https://registry.yarnpkg.com/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.6.tgz#77c95e6b74d2be23208fcdcf187b93b47025f1b1" - integrity sha512-i7wFuLbIAFlabTeD2I1cLjEOrG/xdMa/rpx2zwzAoGHuXJDhSqp9BSfDlMHSh9JSuNfxHk9eEmMX6D55GiyjGg== +"@types/react-syntax-highlighter@15.5.7": + version "15.5.7" + resolved "https://registry.yarnpkg.com/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.7.tgz#bd29020ccb118543d88779848f99059b64b02d0f" + integrity sha512-bo5fEO5toQeyCp0zVHBeggclqf5SQ/Z5blfFmjwO5dkMVGPgmiwZsJh9nu/Bo5L7IHTuGWrja6LxJVE2uB5ZrQ== dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.0", "@types/react-transition-group@^4.4.4": +"@types/react-transition-group@^4.4.0": version "4.4.5" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.5.tgz#aae20dcf773c5aa275d5b9f7cdbca638abc5e416" integrity sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA== dependencies: "@types/react" "*" -"@types/react-virtualized@9.21.21": - version "9.21.21" - resolved "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.21.21.tgz#65c96f25314f0fb3d40536929dc78112753b49e1" - integrity sha512-Exx6I7p4Qn+BBA1SRyj/UwQlZ0I0Pq7g7uhAp0QQ4JWzZunqEqNBGTmCmMmS/3N9wFgAGWuBD16ap7k8Y14VPA== +"@types/react-transition-group@^4.4.5": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" + integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + dependencies: + "@types/react" "*" + +"@types/react-virtualized@9.21.22": + version "9.21.22" + resolved "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.21.22.tgz#5ba39b29869200620a6bf2069b8393f258a9c1e2" + integrity sha512-YRifyCKnBG84+J/Hny0f3bo8BRrcNT74CvsAVpQpZcS83fdC7lP7RfzwL2ND8/ihhpnDFL1IbxJ9MpQNaKUDuQ== dependencies: "@types/prop-types" "*" - "@types/react" "^17" + "@types/react" "*" "@types/react@*", "@types/react@>=16.9.11": version "18.0.25" @@ -2138,19 +2495,10 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@18.0.26": - version "18.0.26" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" - integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^17": - version "17.0.52" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.52.tgz#10d8b907b5c563ac014a541f289ae8eaa9bf2e9b" - integrity sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A== +"@types/react@18.2.15": + version "18.2.15" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.15.tgz#14792b35df676c20ec3cf595b262f8c615a73066" + integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2170,7 +2518,7 @@ dependencies: redux "^4.0.5" -"@types/resolve@1.20.2": +"@types/resolve@1.20.2", "@types/resolve@^1.20.2": version "1.20.2" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== @@ -2185,6 +2533,11 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== +"@types/semver@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -2199,6 +2552,11 @@ "@types/react" "*" csstype "^3.0.2" +"@types/stylis@^4.0.2": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.0.tgz#199a3f473f0c3a6f6e4e1b17cdbc967f274bdc6b" + integrity sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw== + "@types/testing-library__jest-dom@^5.9.1": version "5.14.5" resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" @@ -2238,37 +2596,40 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin-tslint@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-5.48.1.tgz#7cb69e0091b72e8386a0b5af4e637167cec8bcaa" - integrity sha512-gyelXADI57XiM+T78La7t9KDQ+gLMqyDelOgIB30ZRRZwfX9SgwG1iUj6dlr4/CasTydAyXHK4/jEEpGm9KWuQ== +"@typescript-eslint/eslint-plugin-tslint@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-6.1.0.tgz#adb6d883692240e1045f5ddafc4c70f57609e547" + integrity sha512-z/YuzZkEMfAUilyyTjz0h7C6F8+QrSXqkspvBbtRtjWEbVzI+9M+eT2PbmN7tdpfN9peDuwIc3goS0KMDhYq/A== dependencies: - "@typescript-eslint/utils" "5.48.1" - lodash "^4.17.21" + "@typescript-eslint/utils" "6.1.0" -"@typescript-eslint/eslint-plugin@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.1.tgz#deee67e399f2cb6b4608c935777110e509d8018c" - integrity sha512-9nY5K1Rp2ppmpb9s9S2aBiF3xo5uExCehMDmYmmFqqyxgenbHJ3qbarcLt4ITgaD6r/2ypdlcFRdcuVPnks+fQ== - dependencies: - "@typescript-eslint/scope-manager" "5.48.1" - "@typescript-eslint/type-utils" "5.48.1" - "@typescript-eslint/utils" "5.48.1" +"@typescript-eslint/eslint-plugin@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz#96f3ca6615717659d06c9f7161a1d14ab0c49c66" + integrity sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.1.0" + "@typescript-eslint/type-utils" "6.1.0" + "@typescript-eslint/utils" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" debug "^4.3.4" - ignore "^5.2.0" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" natural-compare-lite "^1.4.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" -"@typescript-eslint/parser@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.1.tgz#d0125792dab7e232035434ab8ef0658154db2f10" - integrity sha512-4yg+FJR/V1M9Xoq56SF9Iygqm+r5LMXvheo6DQ7/yUWynQ4YfCRnsKuRgqH4EQ5Ya76rVwlEpw4Xu+TgWQUcdA== +"@typescript-eslint/parser@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.1.0.tgz#3135bf65dca5340d8650703eb8cb83113e156ee5" + integrity sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw== dependencies: - "@typescript-eslint/scope-manager" "5.48.1" - "@typescript-eslint/types" "5.48.1" - "@typescript-eslint/typescript-estree" "5.48.1" + "@typescript-eslint/scope-manager" "6.1.0" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/typescript-estree" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.43.0": @@ -2279,33 +2640,33 @@ "@typescript-eslint/types" "5.43.0" "@typescript-eslint/visitor-keys" "5.43.0" -"@typescript-eslint/scope-manager@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.1.tgz#39c71e4de639f5fe08b988005beaaf6d79f9d64d" - integrity sha512-S035ueRrbxRMKvSTv9vJKIWgr86BD8s3RqoRZmsSh/s8HhIs90g6UlK8ZabUSjUZQkhVxt7nmZ63VJ9dcZhtDQ== +"@typescript-eslint/scope-manager@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz#a6cdbe11630614f8c04867858a42dd56590796ed" + integrity sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw== dependencies: - "@typescript-eslint/types" "5.48.1" - "@typescript-eslint/visitor-keys" "5.48.1" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" -"@typescript-eslint/type-utils@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.1.tgz#5d94ac0c269a81a91ad77c03407cea2caf481412" - integrity sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ== +"@typescript-eslint/type-utils@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz#21cc6c3bc1980b03f9eb4e64580d0c5be6f08215" + integrity sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w== dependencies: - "@typescript-eslint/typescript-estree" "5.48.1" - "@typescript-eslint/utils" "5.48.1" + "@typescript-eslint/typescript-estree" "6.1.0" + "@typescript-eslint/utils" "6.1.0" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" "@typescript-eslint/types@5.43.0": version "5.43.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.43.0.tgz#e4ddd7846fcbc074325293515fa98e844d8d2578" integrity sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg== -"@typescript-eslint/types@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.1.tgz#efd1913a9aaf67caf8a6e6779fd53e14e8587e14" - integrity sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg== +"@typescript-eslint/types@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.1.0.tgz#2d607c62827bb416ada5c96ebfa2ef84e45a8dfa" + integrity sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ== "@typescript-eslint/typescript-estree@5.43.0": version "5.43.0" @@ -2320,32 +2681,31 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.1.tgz#9efa8ee2aa471c6ab62e649f6e64d8d121bc2056" - integrity sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA== +"@typescript-eslint/typescript-estree@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz#ea382f6482ba698d7e993a88ce5391ea7a66c33d" + integrity sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg== dependencies: - "@typescript-eslint/types" "5.48.1" - "@typescript-eslint/visitor-keys" "5.48.1" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" -"@typescript-eslint/utils@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.1.tgz#20f2f4e88e9e2a0961cbebcb47a1f0f7da7ba7f9" - integrity sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA== +"@typescript-eslint/utils@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.1.0.tgz#1641843792b4e3451cc692e2c73055df8b26f453" + integrity sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ== dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.48.1" - "@typescript-eslint/types" "5.48.1" - "@typescript-eslint/typescript-estree" "5.48.1" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.1.0" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/typescript-estree" "6.1.0" + semver "^7.5.4" "@typescript-eslint/utils@^5.10.0": version "5.43.0" @@ -2369,149 +2729,149 @@ "@typescript-eslint/types" "5.43.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@5.48.1": - version "5.48.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.1.tgz#79fd4fb9996023ef86849bf6f904f33eb6c8fccb" - integrity sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA== - dependencies: - "@typescript-eslint/types" "5.48.1" - eslint-visitor-keys "^3.3.0" - -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" +"@typescript-eslint/visitor-keys@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz#d2b84dff6b58944d3257ea03687e269a788c73be" + integrity sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A== + dependencies: + "@typescript-eslint/types" "6.1.0" + eslint-visitor-keys "^3.4.1" + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== 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" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - 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" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - 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" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@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@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - 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" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.0.1.tgz#a69720f6c9bad6aef54a8fa6ba9c3533e7ef4c7f" - integrity sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A== +"@webpack-cli/configtest@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== -"@webpack-cli/info@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0" - integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA== +"@webpack-cli/info@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== -"@webpack-cli/serve@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.1.tgz#34bdc31727a1889198855913db2f270ace6d7bf8" - integrity sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw== +"@webpack-cli/serve@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -2536,10 +2896,10 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== acorn-jsx@^5.3.2: version "5.3.2" @@ -2551,11 +2911,16 @@ acorn-walk@^8.0.2: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.1.0, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: +acorn@^8.1.0, acorn@^8.7.1, acorn@^8.8.0: version "8.8.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +acorn@^8.8.2, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -2664,6 +3029,11 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +are-docs-informative@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/are-docs-informative/-/are-docs-informative-0.0.2.tgz#387f0e93f5d45280373d387a59d34c96db321963" + integrity sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2676,14 +3046,14 @@ 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: +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-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: +array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== @@ -2711,7 +3081,7 @@ array-uniq@^1.0.1: resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== -array.prototype.flat@^1.2.5: +array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== @@ -2742,13 +3112,6 @@ array.prototype.tosorted@^1.1.1: es-shim-unscopables "^1.0.0" get-intrinsic "^1.1.3" -ast-types@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" - integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== - dependencies: - tslib "^2.0.1" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2759,13 +3122,13 @@ attr-accept@^2.2.2: resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== -autoprefixer@10.4.13: - version "10.4.13" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" - integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== +autoprefixer@10.4.14: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== dependencies: - browserslist "^4.21.4" - caniuse-lite "^1.0.30001426" + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -2776,10 +3139,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -axios@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1" - integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q== +axios@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" + integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -2802,25 +3165,25 @@ babel-eslint@10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-jest@29.3.1, babel-jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" - integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== +babel-jest@29.6.1, babel-jest@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.1.tgz#a7141ad1ed5ec50238f3cd36127636823111233a" + integrity sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A== dependencies: - "@jest/transform" "^29.3.1" + "@jest/transform" "^29.6.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.2.0" + babel-preset-jest "^29.5.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" -babel-loader@9.1.2: - version "9.1.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.2.tgz#a16a080de52d08854ee14570469905a5fc00d39c" - integrity sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA== +babel-loader@9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" + integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== dependencies: - find-cache-dir "^3.3.2" + find-cache-dir "^4.0.0" schema-utils "^4.0.0" babel-plugin-istanbul@^6.1.1: @@ -2834,10 +3197,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" - integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== +babel-plugin-jest-hoist@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" + integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -2853,45 +3216,29 @@ babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== +babel-plugin-polyfill-corejs2@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz#9f9a0e1cd9d645cc246a5e094db5c3aa913ccd2b" + integrity sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.1" + "@nicolo-ribaudo/semver-v6" "^6.3.3" -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== +babel-plugin-polyfill-corejs3@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz#d406c5738d298cd9c66f64a94cf8d5904ce4cc5e" + integrity sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.1" + core-js-compat "^3.31.0" -"babel-plugin-styled-components@>= 1.12.0": - version "2.0.7" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz#c81ef34b713f9da2b7d3f5550df0d1e19e798086" - integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== +babel-plugin-polyfill-regenerator@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz#ace7a5eced6dff7d5060c335c52064778216afd3" + integrity sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw== 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" - -babel-plugin-syntax-jsx@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== + "@babel/helper-define-polyfill-provider" "^0.4.1" babel-polyfill@6.26.0: version "6.26.0" @@ -2920,12 +3267,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" - integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== +babel-preset-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" + integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== dependencies: - babel-plugin-jest-hoist "^29.2.0" + babel-plugin-jest-hoist "^29.5.0" babel-preset-current-node-syntax "^1.0.0" babel-runtime@^6.26.0: @@ -2946,6 +3293,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +big-integer@^1.6.44: + version "1.6.51" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -2961,10 +3313,17 @@ bluebird@^3.0.6: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bootstrap@5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.2.3.tgz#54739f4414de121b9785c5da3c87b37ff008322b" - integrity sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ== +bootstrap@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.0.tgz#0718a7cc29040ee8dbf1bd652b896f3436a87c29" + integrity sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw== + +bplist-parser@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== + dependencies: + big-integer "^1.6.44" brace-expansion@^1.1.7: version "1.1.11" @@ -2981,7 +3340,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4: +browserslist@^4.14.5, browserslist@^4.21.3: version "4.21.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== @@ -2991,6 +3350,16 @@ browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4: node-releases "^2.0.6" update-browserslist-db "^1.0.9" +browserslist@^4.21.5, browserslist@^4.21.9: + version "4.21.9" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + dependencies: + caniuse-lite "^1.0.30001503" + electron-to-chromium "^1.4.431" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -3015,23 +3384,17 @@ builtin-modules@^1.1.1: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== -c8@^7.6.0: - version "7.12.0" - resolved "https://registry.yarnpkg.com/c8/-/c8-7.12.0.tgz#402db1c1af4af5249153535d1c84ad70c5c96b14" - integrity sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A== +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +bundle-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" + integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@istanbuljs/schema" "^0.1.3" - find-up "^5.0.0" - foreground-child "^2.0.0" - istanbul-lib-coverage "^3.2.0" - istanbul-lib-report "^3.0.0" - istanbul-reports "^3.1.4" - rimraf "^3.0.2" - test-exclude "^6.0.0" - v8-to-istanbul "^9.0.0" - yargs "^16.2.0" - yargs-parser "^20.2.9" + run-applescript "^5.0.0" call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -3069,11 +3432,16 @@ camelize@^1.0.0: resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== -caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: +caniuse-lite@^1.0.30001400: version "1.0.30001431" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== +caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: + version "1.0.30001515" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" + integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== + capital-case@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" @@ -3157,21 +3525,21 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -chart.js@4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.1.2.tgz#04e3ba63dbc36a2af21caf46ae31940514cb644a" - integrity sha512-9L1w6WLPq6ztiWVVOYtDtpo0CUsBKDWPrUEdwChAyzczaikqeSwNKEv3QpJ7EO4ICcLSi6UDVhgvcnUhRJidRA== +chart.js@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.0.tgz#ac363030ab3fec572850d2d872956f32a46326a1" + integrity sha512-ynG0E79xGfMaV2xAHdbhwiPLczxnNNnasrmPEXriXsPJGjmhOBYzFVEsB65w2qMDz+CaBJJuJD0inE/ab/h36g== dependencies: "@kurkle/color" "^0.3.0" -chartjs-plugin-zoom@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chartjs-plugin-zoom/-/chartjs-plugin-zoom-2.0.0.tgz#b02f5c4422fe517d0fb5d188b408158fef76c415" - integrity sha512-bqpi7DGy9a5hX7ThKl/xQaLzXvneSwhS0w/lNimZ8AJaoRVMKz5JfUoqwciJYV5ixKXJbgyvwC9HcJnyVsYmjg== +chartjs-plugin-zoom@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/chartjs-plugin-zoom/-/chartjs-plugin-zoom-2.0.1.tgz#3db76f92a4741e46cb148cb966181c1b1a974abc" + integrity sha512-ogOmLu6e+Q7E1XWOCOz9YwybMslz9qNfGV2a+qjfmqJYpsw5ZMoRHZBUyW+NGhkpQ5PwwPA/+rikHpBZb7PZuA== dependencies: hammerjs "^2.0.8" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.0: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -3206,7 +3574,7 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== -classnames@^2.3.1: +classnames@^2.3.1, classnames@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== @@ -3218,15 +3586,6 @@ clean-webpack-plugin@4.0.0: dependencies: del "^4.1.1" -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" @@ -3301,21 +3660,31 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@^2.11.0, commander@^2.12.1, commander@^2.19.0, commander@^2.20.0: +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.11.0, commander@^2.12.1, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== comment-parser@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -3335,7 +3704,7 @@ constant-case@^3.0.4: tslib "^2.0.3" upper-case "^2.0.2" -convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -3345,12 +3714,12 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -core-js-compat@^3.25.1: - version "3.26.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.26.1.tgz#0e710b09ebf689d719545ac36e49041850f943df" - integrity sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A== +core-js-compat@^3.31.0: + version "3.31.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.1.tgz#5084ad1a46858df50ff89ace152441a63ba7aae0" + integrity sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA== dependencies: - browserslist "^4.21.4" + browserslist "^4.21.9" core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -3368,6 +3737,16 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" + integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + create-react-class@15.7.0: version "15.7.0" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" @@ -3376,7 +3755,7 @@ create-react-class@15.7.0: loose-envify "^1.3.1" object-assign "^4.1.1" -cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@7.0.3, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3390,24 +3769,24 @@ css-color-keywords@^1.0.0: resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== -css-loader@6.7.3: - version "6.7.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" - integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== +css-loader@6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" + integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== dependencies: icss-utils "^5.1.0" - postcss "^8.4.19" + postcss "^8.4.21" postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" + postcss-modules-local-by-default "^4.0.3" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" semver "^7.3.8" -css-to-react-native@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" - integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== +css-to-react-native@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== dependencies: camelize "^1.0.0" css-color-keywords "^1.0.0" @@ -3445,15 +3824,29 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== +csstype@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + currency-symbol-map@5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/currency-symbol-map/-/currency-symbol-map-5.1.0.tgz#59531fbe977ba95e8d358e90e3c9e9053efb75ad" integrity sha512-LO/lzYRw134LMDVnLyAf1dHE5tyO6axEFkR3TXjQIOmMkAM9YL6QsiUwuXzZAmFnuDJcs4hayOgyIYtViXFrLw== -d3-array@2, d3-array@2.3.3, d3-array@^2.3.0, d3-array@^2.5.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.3.3.tgz#e90c39fbaedccedf59fc30473092f99a0e14efa2" - integrity sha512-syv3wp0U5aB6toP2zb2OdBkhTy1MWDsCAaYk6OXJZv+G4u7bSWEmYgxLoFyc88RQUhZYGCebW9a9UD1gFi5+MQ== +d3-array@2, d3-array@^2.3.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +d3-array@3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" d3-cloud@^1.2.5: version "1.2.5" @@ -3462,37 +3855,42 @@ d3-cloud@^1.2.5: dependencies: d3-dispatch "^1.0.3" -d3-color@1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== - "d3-color@1 - 2": version "2.0.0" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== -d3-dispatch@1, d3-dispatch@^1.0.3, d3-dispatch@^1.0.6: +"d3-color@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +"d3-dispatch@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +d3-dispatch@^1.0.3, d3-dispatch@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== -d3-ease@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== +"d3-ease@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== "d3-format@1 - 2": version "2.0.0" resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== -d3-interpolate@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== +"d3-interpolate@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== dependencies: - d3-color "1" + d3-color "1 - 3" "d3-interpolate@1.2.0 - 2": version "2.0.1" @@ -3501,13 +3899,13 @@ d3-interpolate@1: dependencies: d3-color "1 - 2" -d3-scale-chromatic@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" - integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg== +d3-scale-chromatic@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== dependencies: - d3-color "1" - d3-interpolate "1" + d3-color "1 - 3" + d3-interpolate "1 - 3" d3-scale@^3.2.1: version "3.3.0" @@ -3520,10 +3918,10 @@ d3-scale@^3.2.1: d3-time "^2.1.1" d3-time-format "2 - 3" -d3-selection@1.4.2, d3-selection@^1.1.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== +d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== "d3-time-format@2 - 3": version "3.0.0" @@ -3539,22 +3937,21 @@ d3-selection@1.4.2, d3-selection@^1.1.0: dependencies: d3-array "2" -d3-timer@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== +"d3-timer@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== -d3-transition@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== +d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" data-urls@^3.0.2: version "3.0.2" @@ -3582,13 +3979,6 @@ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -3606,18 +3996,6 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -deep-equal@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - deep-equal@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.1.0.tgz#5ba60402cf44ab92c2c07f3f3312c3d857a0e1dd" @@ -3649,6 +4027,29 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +default-browser-id@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" + integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== + dependencies: + bplist-parser "^0.2.0" + untildify "^4.0.0" + +default-browser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" + integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== + dependencies: + bundle-name "^3.0.0" + default-browser-id "^3.0.0" + execa "^7.1.1" + titleize "^3.0.0" + +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" @@ -3680,7 +4081,7 @@ dependency-graph@^0.11.0: resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== -dequal@^2.0.2: +dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== @@ -3695,6 +4096,11 @@ diff-sequences@^29.3.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== +diff-sequences@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" + integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -3734,11 +4140,6 @@ dom-helpers@5.2.1, dom-helpers@^5.0.1, dom-helpers@^5.1.3, dom-helpers@^5.2.0, d "@babel/runtime" "^7.8.7" csstype "^3.0.2" -dom4@^2.1.5: - version "2.1.6" - resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.6.tgz#c90df07134aa0dbd81ed4d6ba1237b36fc164770" - integrity sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA== - domexception@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" @@ -3764,6 +4165,11 @@ electron-to-chromium@^1.4.251: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== +electron-to-chromium@^1.4.431: + version "1.4.457" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.457.tgz#3fdc7b4f97d628ac6b51e8b4b385befb362fe343" + integrity sha512-/g3UyNDmDd6ebeWapmAoiyy+Sy2HyJ+/X8KyvNeHfKRFfHaA2W8oF5fxD5F3tjBDcjpwo0iek6YNgxNXDBoEtA== + emittery@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" @@ -3779,7 +4185,7 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0: +enhanced-resolve@^5.0.0: version "5.10.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== @@ -3787,6 +4193,14 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0: graceful-fs "^4.2.4" tapable "^2.2.0" +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + entities@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" @@ -3855,10 +4269,10 @@ es-get-iterator@^1.1.2: is-string "^1.0.5" isarray "^2.0.5" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" + integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== es-shim-unscopables@^1.0.0: version "1.0.0" @@ -3918,23 +4332,24 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" - integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== +eslint-config-prettier@8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.11.0" + resolve "^1.22.1" -eslint-module-utils@^2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== +eslint-module-utils@^2.7.4: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" @@ -3953,43 +4368,47 @@ eslint-plugin-flowtype@8.0.3: lodash "^4.17.21" string-natural-compare "^3.0.1" -eslint-plugin-import@2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== +eslint-plugin-import@2.27.5: + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" has "^1.0.3" - is-core-module "^2.8.1" + is-core-module "^2.11.0" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" tsconfig-paths "^3.14.1" -eslint-plugin-jest@27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz#b85b4adf41c682ea29f1f01c8b11ccc39b5c672c" - integrity sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg== +eslint-plugin-jest@27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz#6f8a4bb2ca82c0c5d481d1b3be256ab001f5a3ec" + integrity sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ== dependencies: "@typescript-eslint/utils" "^5.10.0" -eslint-plugin-jsdoc@39.6.4: - version "39.6.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.6.4.tgz#b940aebd3eea26884a0d341785d2dc3aba6a38a7" - integrity sha512-fskvdLCfwmPjHb6e+xNGDtGgbF8X7cDwMtVLAP2WwSf9Htrx68OAx31BESBM1FAwsN2HTQyYQq7m4aW4Q4Nlag== +eslint-plugin-jsdoc@46.4.4: + version "46.4.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.4.4.tgz#cdcf9f59238381e3ee57110ceccefdfef388455d" + integrity sha512-D8TGPOkq3bnzmYmA7Q6jdsW+Slx7CunhJk1tlouVq6wJjlP1p6eigZPvxFn7aufud/D66xBsNVMhkDQEuqumMg== dependencies: - "@es-joy/jsdoccomment" "~0.36.1" + "@es-joy/jsdoccomment" "~0.39.4" + are-docs-informative "^0.0.2" comment-parser "1.3.1" debug "^4.3.4" escape-string-regexp "^4.0.0" - esquery "^1.4.0" - semver "^7.3.8" + esquery "^1.5.0" + is-builtin-module "^3.2.1" + semver "^7.5.1" spdx-expression-parse "^3.0.1" eslint-plugin-only-warn@1.1.0: @@ -3997,22 +4416,23 @@ eslint-plugin-only-warn@1.1.0: resolved "https://registry.yarnpkg.com/eslint-plugin-only-warn/-/eslint-plugin-only-warn-1.1.0.tgz#c6ddc37ddc4e72c121f07be565fcb7b6671fe78a" integrity sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA== -eslint-plugin-prettier@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== +eslint-plugin-prettier@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz#6887780ed95f7708340ec79acfdf60c35b9be57a" + integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w== dependencies: prettier-linter-helpers "^1.0.0" + synckit "^0.8.5" eslint-plugin-promise@6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== -eslint-plugin-react@7.31.11: - version "7.31.11" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8" - integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== +eslint-plugin-react@7.32.2: + version "7.32.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -4026,7 +4446,7 @@ eslint-plugin-react@7.31.11: object.hasown "^1.1.2" object.values "^1.1.6" prop-types "^15.8.1" - resolve "^2.0.0-next.3" + resolve "^2.0.0-next.4" semver "^6.3.0" string.prototype.matchall "^4.0.8" @@ -4043,10 +4463,10 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -4073,13 +4493,21 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.31.0: - version "8.31.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" - integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== - dependencies: - "@eslint/eslintrc" "^1.4.1" - "@humanwhocodes/config-array" "^0.11.8" +eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint@8.45.0: + version "8.45.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" + integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.1.0" + "@eslint/js" "8.44.0" + "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -4088,54 +4516,49 @@ eslint@8.31.0: 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.0" + eslint-visitor-keys "^3.4.1" + espree "^9.6.0" + 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" - grapheme-splitter "^1.0.4" + 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-sdsl "^4.1.4" 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" -espree@^9.4.0: - version "9.4.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" - integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== +espree@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" + integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== dependencies: - 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" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.2, esquery@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -4156,15 +4579,6 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-to-babel@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5" - integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg== - dependencies: - "@babel/traverse" "^7.1.6" - "@babel/types" "^7.2.0" - c8 "^7.6.0" - esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -4195,12 +4609,27 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" + integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.0.0, expect@^29.3.1: +expect@^29.0.0: version "29.3.1" resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== @@ -4211,6 +4640,18 @@ expect@^29.0.0, expect@^29.3.1: jest-message-util "^29.3.1" jest-util "^29.3.1" +expect@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.1.tgz#64dd1c8f75e2c0b209418f2b8d36a07921adfdf1" + integrity sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g== + dependencies: + "@jest/expect-utils" "^29.6.1" + "@types/node" "*" + jest-get-type "^29.4.3" + jest-matcher-utils "^29.6.1" + jest-message-util "^29.6.1" + jest-util "^29.6.1" + exports-loader@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-4.0.0.tgz#af34fe80a18f12fb0f42f435edd7df0fe9db49bb" @@ -4218,10 +4659,10 @@ exports-loader@4.0.0: dependencies: source-map "^0.6.1" -expose-loader@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-4.0.0.tgz#aa6f06f57cbc904175de4fe4eaff6211337e0231" - integrity sha512-kUEvHyf6MPR2ubZCL9aziP9Br5wxMvq1cghTpYhM6MW52NPq+7hXixw2EqQuI1SvGb1fDjc2ehJOg6645wR6ww== +expose-loader@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-4.1.0.tgz#9c6d55d24e3ac0e5d50ee5dc7930d564fc475d48" + integrity sha512-oLAesnzerwDGGADzBMnu0LPqqnlVz6e2V9lTa+/4X6VeW9W93x/nJpw05WBrcIdbqXm/EdnEQpiVDFFiQXuNfg== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -4244,6 +4685,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" + integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== + 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" + fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -4323,14 +4775,13 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" find-root@^1.1.0: version "1.1.0" @@ -4360,6 +4811,14 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -4373,10 +4832,10 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -flow-bin@0.196.3: - version "0.196.3" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.196.3.tgz#b6df48986a2629f2c6a26fb79d73fc07c8056af0" - integrity sha512-pmvjlksi1CvkSnDHpcfhDFj/KC3hwSgE2OpzvugW57dfgqfHzqX1UfZIcScGWM5AmP/IeOsQCW383k3zIbEnrA== +flow-bin@0.212.0: + version "0.212.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.212.0.tgz#6ec26d4a26cbfe1e4e02a85cce87a1b08903b804" + integrity sha512-RbKhEsMoorfWbKca/Zdd8j5mQFTbnP5I3Q5vzR2ReVfMQUb5RaV8R9ejKeZzoq/nDf6UreXRTNjnffYJVmn4Fw== follow-redirects@^1.15.0: version "1.15.2" @@ -4390,14 +4849,6 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -4426,6 +4877,11 @@ fs-extra@^11.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -4490,7 +4946,7 @@ get-stdin@^9.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -4522,7 +4978,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: +glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4592,15 +5048,10 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -gud@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" - integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== hammerjs@^2.0.8: version "2.0.8" @@ -4684,17 +5135,17 @@ header-case@^2.0.4: capital-case "^1.0.4" tslib "^2.0.3" -highlight.js@11.7.0: - version "11.7.0" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.7.0.tgz#3ff0165bc843f8c9bce1fd89e2fda9143d24b11e" - integrity sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ== +highlight.js@11.8.0: + version "11.8.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.8.0.tgz#966518ea83257bae2e7c9a48596231856555bb65" + integrity sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg== highlight.js@^10.4.1, highlight.js@~10.7.0: version "10.7.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -4747,12 +5198,17 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -i18next@22.4.9: - version "22.4.9" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.4.9.tgz#98c8384c6bd41ff937da98b1e809ba03d3b41053" - integrity sha512-8gWMmUz460KJDQp/ob3MNUX84cVuDRY9PLFPnV8d+Qezz/6dkjxwOaH70xjrCNDO+JrUL25iXfAIN9wUkInNZw== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + +i18next@23.2.11: + version "23.2.11" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.2.11.tgz#0c6f3a637fa87d3243e64b78ad285b7f77d41353" + integrity sha512-MA4FsxOjyCaOZtRDB4yuwjCvqYEioD4G4LlXOn7SO3rnQUlxTufyLsOqfL9MKakeLRBkefe8bqcs0D6Z/xFk1w== dependencies: - "@babel/runtime" "^7.20.6" + "@babel/runtime" "^7.22.5" iconv-lite@0.6.3: version "0.6.3" @@ -4771,22 +5227,27 @@ ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -immer@^9.0.16: - version "9.0.16" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.16.tgz#8e7caab80118c2b54b37ad43e05758cdefad0198" - integrity sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ== +ignore@^5.2.4: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -immutable@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16" - integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og== +immer@^9.0.21: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +immutable@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.1.tgz#17988b356097ab0719e2f741d56f3ec6c317f9dc" + integrity sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A== immutable@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -4842,6 +5303,16 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + interpret@^1.0.1: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" @@ -4872,7 +5343,7 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-arguments@^1.0.4, is-arguments@^1.1.0, is-arguments@^1.1.1: +is-arguments@^1.1.0, 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== @@ -4907,12 +5378,26 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.8.1, is-core-module@^2.9.0: +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== @@ -4931,6 +5416,16 @@ is-decimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -4958,6 +5453,13 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + 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" @@ -5016,7 +5518,7 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.0.4, is-regex@^1.1.4: +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -5041,6 +5543,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -5086,6 +5593,13 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -5135,7 +5649,7 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.1.3, istanbul-reports@^3.1.4: +istanbul-reports@^3.1.3: version "3.1.5" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== @@ -5143,82 +5657,83 @@ istanbul-reports@^3.1.3, istanbul-reports@^3.1.4: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" - integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== +jest-changed-files@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" + integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" - integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== +jest-circus@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.1.tgz#861dab37e71a89907d1c0fabc54a0019738ed824" + integrity sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.6.1" + "@jest/expect" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + dedent "^0.7.0" + is-generator-fn "^2.0.0" + jest-each "^29.6.1" + jest-matcher-utils "^29.6.1" + jest-message-util "^29.6.1" + jest-runtime "^29.6.1" + jest-snapshot "^29.6.1" + jest-util "^29.6.1" p-limit "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.6.1" + pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" - integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== +jest-cli@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.1.tgz#99d9afa7449538221c71f358f0fdd3e9c6e89f72" + integrity sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing== dependencies: - "@jest/core" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/types" "^29.6.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-config "^29.6.1" + jest-util "^29.6.1" + jest-validate "^29.6.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" - integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== +jest-config@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.1.tgz#d785344509065d53a238224c6cdc0ed8e2f2f0dd" + integrity sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.1" - "@jest/types" "^29.3.1" - babel-jest "^29.3.1" + "@jest/test-sequencer" "^29.6.1" + "@jest/types" "^29.6.1" + babel-jest "^29.6.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.3.1" - jest-environment-node "^29.3.1" - jest-get-type "^29.2.0" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-runner "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-circus "^29.6.1" + jest-environment-node "^29.6.1" + jest-get-type "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.6.1" + jest-runner "^29.6.1" + jest-util "^29.6.1" + jest-validate "^29.6.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.3.1" + pretty-format "^29.6.1" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -5232,91 +5747,106 @@ jest-diff@^29.3.1: jest-get-type "^29.2.0" pretty-format "^29.3.1" -jest-docblock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" - integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== +jest-diff@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.1.tgz#13df6db0a89ee6ad93c747c75c85c70ba941e545" + integrity sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg== dependencies: - detect-newline "^3.0.0" + chalk "^4.0.0" + diff-sequences "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.6.1" -jest-each@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" - integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== +jest-docblock@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" + integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== dependencies: - "@jest/types" "^29.3.1" - chalk "^4.0.0" - jest-get-type "^29.2.0" - jest-util "^29.3.1" - pretty-format "^29.3.1" + detect-newline "^3.0.0" -jest-environment-jsdom@29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639" - integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA== +jest-each@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.1.tgz#975058e5b8f55c6780beab8b6ab214921815c89c" + integrity sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/types" "^29.6.1" + chalk "^4.0.0" + jest-get-type "^29.4.3" + jest-util "^29.6.1" + pretty-format "^29.6.1" + +jest-environment-jsdom@29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.6.1.tgz#480bce658aa31589309c82ca510351fd7c683bbb" + integrity sha512-PoY+yLaHzVRhVEjcVKSfJ7wXmJW4UqPYNhR05h7u/TK0ouf6DmRNZFBL/Z00zgQMyWGMBXn69/FmOvhEJu8cIw== + dependencies: + "@jest/environment" "^29.6.1" + "@jest/fake-timers" "^29.6.1" + "@jest/types" "^29.6.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.6.1" + jest-util "^29.6.1" jsdom "^20.0.0" -jest-environment-node@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" - integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== +jest-environment-node@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.1.tgz#08a122dece39e58bc388da815a2166c58b4abec6" + integrity sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.6.1" + "@jest/fake-timers" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.6.1" + jest-util "^29.6.1" jest-get-type@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== +jest-get-type@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" + integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== + +jest-haste-map@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.1.tgz#62655c7a1c1b349a3206441330fb2dbdb4b63803" + integrity sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.6.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-regex-util "^29.4.3" + jest-util "^29.6.1" + jest-worker "^29.6.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-junit@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-15.0.0.tgz#a47544ab42e9f8fe7ada56306c218e09e52bd690" - integrity sha512-Z5sVX0Ag3HZdMUnD5DFlG+1gciIFSy7yIVPhOdGUi8YJaI9iLvvBb530gtQL2CHmv0JJeiwRZenr0VrSR7frvg== +jest-junit@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785" + integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ== dependencies: mkdirp "^1.0.4" strip-ansi "^6.0.1" uuid "^8.3.2" xml "^1.0.1" -jest-leak-detector@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" - integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== +jest-leak-detector@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.1.tgz#66a902c81318e66e694df7d096a95466cb962f8e" + integrity sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ== dependencies: - jest-get-type "^29.2.0" - pretty-format "^29.3.1" + jest-get-type "^29.4.3" + pretty-format "^29.6.1" jest-matcher-utils@^29.3.1: version "29.3.1" @@ -5328,6 +5858,16 @@ jest-matcher-utils@^29.3.1: jest-get-type "^29.2.0" pretty-format "^29.3.1" +jest-matcher-utils@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz#6c60075d84655d6300c5d5128f46531848160b53" + integrity sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA== + dependencies: + chalk "^4.0.0" + jest-diff "^29.6.1" + jest-get-type "^29.4.3" + pretty-format "^29.6.1" + jest-message-util@^29.3.1: version "29.3.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" @@ -5343,132 +5883,144 @@ jest-message-util@^29.3.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== +jest-message-util@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.1.tgz#d0b21d87f117e1b9e165e24f245befd2ff34ff8d" + integrity sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ== dependencies: - "@jest/types" "^29.3.1" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.6.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.1.tgz#049ee26aea8cbf54c764af649070910607316517" + integrity sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw== + dependencies: + "@jest/types" "^29.6.1" "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.6.1" jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" - integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== +jest-regex-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" + integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" - integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== +jest-resolve-dependencies@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.1.tgz#b85b06670f987a62515bbf625d54a499e3d708f5" + integrity sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw== dependencies: - jest-regex-util "^29.2.0" - jest-snapshot "^29.3.1" + jest-regex-util "^29.4.3" + jest-snapshot "^29.6.1" -jest-resolve@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" - integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== +jest-resolve@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.1.tgz#4c3324b993a85e300add2f8609f51b80ddea39ee" + integrity sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.6.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-util "^29.6.1" + jest-validate "^29.6.1" resolve "^1.20.0" - resolve.exports "^1.1.0" + resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" - integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== +jest-runner@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.1.tgz#54557087e7972d345540d622ab5bfc3d8f34688c" + integrity sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ== dependencies: - "@jest/console" "^29.3.1" - "@jest/environment" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.6.1" + "@jest/environment" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.2.0" - jest-environment-node "^29.3.1" - jest-haste-map "^29.3.1" - jest-leak-detector "^29.3.1" - jest-message-util "^29.3.1" - jest-resolve "^29.3.1" - jest-runtime "^29.3.1" - jest-util "^29.3.1" - jest-watcher "^29.3.1" - jest-worker "^29.3.1" + jest-docblock "^29.4.3" + jest-environment-node "^29.6.1" + jest-haste-map "^29.6.1" + jest-leak-detector "^29.6.1" + jest-message-util "^29.6.1" + jest-resolve "^29.6.1" + jest-runtime "^29.6.1" + jest-util "^29.6.1" + jest-watcher "^29.6.1" + jest-worker "^29.6.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" - integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/globals" "^29.3.1" - "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" +jest-runtime@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.1.tgz#8a0fc9274ef277f3d70ba19d238e64334958a0dc" + integrity sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ== + dependencies: + "@jest/environment" "^29.6.1" + "@jest/fake-timers" "^29.6.1" + "@jest/globals" "^29.6.1" + "@jest/source-map" "^29.6.0" + "@jest/test-result" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-haste-map "^29.6.1" + jest-message-util "^29.6.1" + jest-mock "^29.6.1" + jest-regex-util "^29.4.3" + jest-resolve "^29.6.1" + jest-snapshot "^29.6.1" + jest-util "^29.6.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== +jest-snapshot@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.1.tgz#0d083cb7de716d5d5cdbe80d598ed2fbafac0239" + integrity sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/babel__traverse" "^7.0.6" + "@jest/expect-utils" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.3.1" + expect "^29.6.1" graceful-fs "^4.2.9" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-diff "^29.6.1" + jest-get-type "^29.4.3" + jest-matcher-utils "^29.6.1" + jest-message-util "^29.6.1" + jest-util "^29.6.1" natural-compare "^1.4.0" - pretty-format "^29.3.1" - semver "^7.3.5" + pretty-format "^29.6.1" + semver "^7.5.3" jest-util@^29.0.0, jest-util@^29.3.1: version "29.3.1" @@ -5482,30 +6034,42 @@ jest-util@^29.0.0, jest-util@^29.3.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" - integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== +jest-util@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.1.tgz#c9e29a87a6edbf1e39e6dee2b4689b8a146679cb" + integrity sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.6.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.1.tgz#765e684af6e2c86dce950aebefbbcd4546d69f7b" + integrity sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA== + dependencies: + "@jest/types" "^29.6.1" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.2.0" + jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.6.1" -jest-watcher@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" - integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== +jest-watcher@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.1.tgz#7c0c43ddd52418af134c551c92c9ea31e5ec942e" + integrity sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA== dependencies: - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.3.1" + jest-util "^29.6.1" string-length "^4.0.1" jest-worker@^27.4.5: @@ -5517,25 +6081,30 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== +jest-worker@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.1.tgz#64b015f0e985ef3a8ad049b61fe92b3db74a5319" + integrity sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA== dependencies: "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.6.1" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" - integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== +jest@29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.1.tgz#74be1cb719c3abe439f2d94aeb18e6540a5b02ad" + integrity sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw== dependencies: - "@jest/core" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.6.1" + "@jest/types" "^29.6.1" import-local "^3.0.2" - jest-cli "^29.3.1" + jest-cli "^29.6.1" + +jiti@^1.18.2: + version "1.19.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1" + integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== js-message@1.0.7: version "1.0.7" @@ -5549,11 +6118,6 @@ js-queue@2.0.2: dependencies: easy-stack "^1.0.1" -js-sdsl@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" - integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -5574,10 +6138,10 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdoc-type-pratt-parser@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz#a4a56bdc6e82e5865ffd9febc5b1a227ff28e67e" - integrity sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw== +jsdoc-type-pratt-parser@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114" + integrity sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ== jsdom@^20.0.0: version "20.0.2" @@ -5668,7 +6232,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.1, json5@^2.2.2: +json5@^2.1.2, json5@^2.2.1, json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -5705,11 +6269,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -klona@^2.0.4, klona@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -5777,6 +6336,13 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + lodash-es@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -5822,7 +6388,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.0.1, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5868,6 +6434,11 @@ lz-string@^1.4.4: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ== +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== + make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -5876,7 +6447,7 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2: +make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -5940,19 +6511,24 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -min-indent@^1.0.0: +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +min-indent@^1.0.0, min-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@1.2.7, minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== @@ -5974,11 +6550,6 @@ moment@2.29.4: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -5994,6 +6565,11 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -6004,7 +6580,7 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -6017,13 +6593,6 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-dir@^0.1.10: - version "0.1.17" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== - dependencies: - minimatch "^3.0.2" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -6038,6 +6607,11 @@ node-ipc@^9.1.0: js-message "1.0.7" js-queue "2.0.2" +node-releases@^2.0.12: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== + node-releases@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" @@ -6065,6 +6639,13 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + ntee@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ntee/-/ntee-2.0.0.tgz#8c1e7410d9ae9b3a026f57ef1b8dabf8a0d8dd21" @@ -6090,7 +6671,7 @@ object-inspect@^1.12.2, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-is@^1.0.1, object-is@^1.1.5: +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== @@ -6139,7 +6720,7 @@ object.hasown@^1.1.2: define-properties "^1.1.4" es-abstract "^1.20.4" -object.values@^1.1.5, object.values@^1.1.6: +object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -6169,6 +6750,23 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +open@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" + integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== + dependencies: + default-browser "^4.0.0" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^2.2.0" + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -6181,17 +6779,17 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@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" p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" @@ -6207,6 +6805,13 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -6228,6 +6833,13 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -6326,6 +6938,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6341,6 +6958,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -6366,7 +6988,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -6405,28 +7027,30 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -plotly.js-geo-dist-min@2.17.1: - version "2.17.1" - resolved "https://registry.yarnpkg.com/plotly.js-geo-dist-min/-/plotly.js-geo-dist-min-2.17.1.tgz#73a03953f63b6ca755e93fac20914a8e2bef0db8" - integrity sha512-1FU48h+wP45wArNE0hTGbM6uwD5OCec2bLrBQJDTQU4A2NuvOgdzG9Ow/1F66mkotcw0jyaadyOR92HRfsv/sA== +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +plotly.js-geo-dist-min@2.24.3: + version "2.24.3" + resolved "https://registry.yarnpkg.com/plotly.js-geo-dist-min/-/plotly.js-geo-dist-min-2.24.3.tgz#1769eb30c1fc220233aa552a9e29ee4100f26d14" + integrity sha512-hystOHwjVchre7UZ3o0nzDoTGGR+7d4LOxWas386zvscBTAR5Mo4jwDkSntvly1fwBsrov+7/uj/4TFHn/YHGA== pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" integrity sha512-TH+BeeL6Ct98C7as35JbZLf8lgsRzlNJb5gklRIGHKaPkGl1esOKBc5ALUMd+q08Sr6tiEKM+Icbsxg5vuhMKQ== -popper.js@^1.14.4, popper.js@^1.16.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== - postcss-cli@10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-10.1.0.tgz#f6658c4998a1c35bd66cd71009132b2d12e04f80" @@ -6453,13 +7077,13 @@ postcss-load-config@^4.0.0: lilconfig "^2.0.5" yaml "^2.1.1" -postcss-loader@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.0.2.tgz#b53ff44a26fba3688eee92a048c7f2d4802e23bb" - integrity sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg== +postcss-loader@7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.3.tgz#6da03e71a918ef49df1bb4be4c80401df8e249dd" + integrity sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA== dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.5" + cosmiconfig "^8.2.0" + jiti "^1.18.2" semver "^7.3.8" postcss-modules-extract-imports@^3.0.0: @@ -6467,10 +7091,10 @@ postcss-modules-extract-imports@^3.0.0: resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== +postcss-modules-local-by-default@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== dependencies: icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" @@ -6490,12 +7114,12 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nested@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" - integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== +postcss-nested@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== dependencies: - postcss-selector-parser "^6.0.10" + postcss-selector-parser "^6.0.11" postcss-reporter@^7.0.0: version "7.0.5" @@ -6505,10 +7129,10 @@ postcss-reporter@^7.0.0: picocolors "^1.0.0" thenby "^1.3.4" -postcss-selector-parser@^6.0.10: - version "6.0.11" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== +postcss-selector-parser@^6.0.11: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -6526,7 +7150,7 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.21, postcss@^8.4.19: +postcss@^8.4.21: version "8.4.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== @@ -6535,6 +7159,15 @@ postcss@8.4.21, postcss@^8.4.19: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.23: + version "8.4.26" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.26.tgz#1bc62ab19f8e1e5463d98cf74af39702a00a9e94" + integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -6552,10 +7185,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.2.tgz#c4ea1b5b454d7c4b59966db2e06ed7eec5dfd160" - integrity sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw== +prettier@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" + integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== pretty-format@^27.0.2: version "27.5.1" @@ -6575,6 +7208,15 @@ pretty-format@^29.0.0, pretty-format@^29.3.1: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.1.tgz#ec838c288850b7c4f9090b867c2d4f4edbfb0f3e" + integrity sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog== + dependencies: + "@jest/schemas" "^29.6.0" + ansi-styles "^5.0.0" + react-is "^18.0.0" + pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" @@ -6642,6 +7284,11 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pure-rand@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" + integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -6678,21 +7325,21 @@ react-addons-shallow-compare@15.6.3: dependencies: object-assign "^4.1.0" -react-bootstrap@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.7.0.tgz#4a8f0311bccac477dc925366763c536f46e4393b" - integrity sha512-Jcrn6aUuRVBeSB6dzKODKZU1TONOdhAxu0IDm4Sv74SJUm98dMdhSotF2SNvFEADANoR+stV+7TK6SNX1wWu5w== +react-bootstrap@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.8.0.tgz#781f254b33090c1d50ed521b40697727267c6add" + integrity sha512-e/aNtxl0Z2ozrIaR82jr6Zz7ss9GSoaXpQaxmvtDUsTZIq/XalkduR/ZXP6vbQHz2T4syvjA+4FbtwELxxmpww== dependencies: - "@babel/runtime" "^7.17.2" - "@restart/hooks" "^0.4.6" - "@restart/ui" "^1.4.1" - "@types/react-transition-group" "^4.4.4" - classnames "^2.3.1" + "@babel/runtime" "^7.21.0" + "@restart/hooks" "^0.4.9" + "@restart/ui" "^1.6.3" + "@types/react-transition-group" "^4.4.5" + classnames "^2.3.2" dom-helpers "^5.2.1" invariant "^2.2.4" prop-types "^15.8.1" prop-types-extra "^1.1.0" - react-transition-group "^4.4.2" + react-transition-group "^4.4.5" uncontrollable "^7.2.1" warning "^4.0.3" @@ -6716,21 +7363,21 @@ react-day-picker@7.4.9: dependencies: prop-types "^15.6.2" -react-docgen@5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-5.4.3.tgz#7d297f73b977d0c7611402e5fc2a168acf332b26" - integrity sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA== +react-docgen@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-6.0.2.tgz#6a0508a91c5e83d9f79c407aa24250d8f0aefa42" + integrity sha512-RCLzx3natZtPdWRAYoh++XDpqMYLlKl1VmPzWeqv5KK6nrCWbGWvgpeWjVrjkm/gYq5kZYCCekZ5luGMLqONnw== dependencies: - "@babel/core" "^7.7.5" - "@babel/generator" "^7.12.11" - "@babel/runtime" "^7.7.6" - ast-types "^0.14.2" - commander "^2.19.0" + "@babel/core" "^7.18.9" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + "@types/babel__core" "^7.18.0" + "@types/babel__traverse" "^7.18.0" + "@types/doctrine" "^0.0.5" + "@types/resolve" "^1.20.2" doctrine "^3.0.0" - estree-to-babel "^3.1.0" - neo-async "^2.6.1" - node-dir "^0.1.10" - strip-indent "^3.0.0" + resolve "^1.22.1" + strip-indent "^4.0.0" react-dom@18.2.0: version "18.2.0" @@ -6769,12 +7416,12 @@ react-hotkeys@2.0.0: dependencies: prop-types "^15.6.1" -react-i18next@12.1.4: - version "12.1.4" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-12.1.4.tgz#be0a60d3a45acc4321909f8a4b8cde16518a2926" - integrity sha512-XQND7jYtgM7ht5PH3yIZljCRpAMTlH/zmngM9ZjToqa+0BR6xuu8c7QF0WIIOEjcMTB2S3iOfpN/xG/ZrAnO6g== +react-i18next@13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.0.2.tgz#1708a9bdabc1fe1dd4a8534f4c3a80ab784b01e9" + integrity sha512-NEVxC32v0oR4egwYM0QM0WE93AiJG5r0NTXTL8mhQfAhsMfDS2fSO6jpluyfsfypP988KzUQrAXncspcJ7+GHA== dependencies: - "@babel/runtime" "^7.20.6" + "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" "react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0, react-is@^18.2.0: @@ -6806,19 +7453,6 @@ react-motion@0.5.2: prop-types "^15.5.8" raf "^3.1.0" -react-popper@^1.3.11: - version "1.3.11" - resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.11.tgz#a2cc3f0a67b75b66cfa62d2c409f9dd1fcc71ffd" - integrity sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg== - dependencies: - "@babel/runtime" "^7.1.2" - "@hypnosphi/create-react-context" "^0.3.1" - deep-equal "^1.1.1" - popper.js "^1.14.4" - prop-types "^15.6.1" - typed-styles "^0.0.7" - warning "^4.0.2" - react-popper@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" @@ -6827,10 +7461,10 @@ react-popper@^2.3.0: react-fast-compare "^3.0.1" warning "^4.0.2" -react-redux@8.0.5: - version "8.0.5" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.0.5.tgz#e5fb8331993a019b8aaf2e167a93d10af469c7bd" - integrity sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw== +react-redux@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.1.tgz#8e740f3fd864a4cd0de5ba9cdc8ad39cc9e7c81a" + integrity sha512-5W0QaKtEhj+3bC0Nj0NkqkhIv8gLADH/2kYFMTHxCVqQILiWzLv6MaLuV5wJU3BQEdHKzTfcvPN0WMS6SC1oyA== dependencies: "@babel/runtime" "^7.12.1" "@types/hoist-non-react-statics" "^3.3.1" @@ -6861,10 +7495,10 @@ react-select@*: react-transition-group "^4.3.0" use-isomorphic-layout-effect "^1.1.2" -react-select@5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.0.tgz#82921b38f1fcf1471a0b62304da01f2896cd8ce6" - integrity sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ== +react-select@5.7.4: + version "5.7.4" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.4.tgz#d8cad96e7bc9d6c8e2709bdda8f4363c5dd7ea7d" + integrity sha512-NhuE56X+p9QDFh4BgeygHFIvJJszO1i1KSkg/JPcIJrbovyRtI+GuOEa4XzFCEpZRAEoEI8u/cAHK+jG/PgUzQ== dependencies: "@babel/runtime" "^7.12.0" "@emotion/cache" "^11.4.0" @@ -6884,10 +7518,10 @@ react-shallow-renderer@^16.15.0: object-assign "^4.1.1" react-is "^16.12.0 || ^17.0.0 || ^18.0.0" -react-slider@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/react-slider/-/react-slider-2.0.4.tgz#21c656ffabc3bb4481cf6b49e6d647baeda83572" - integrity sha512-sWwQD01n6v+MbeLCYthJGZPc0kzOyhQHyd0bSo0edg+IAxTVQmj3Oy4SBK65eX6gNwS9meUn6Z5sIBUVmwAd9g== +react-slider@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/react-slider/-/react-slider-2.0.6.tgz#8c7ff0301211f7c3ff32aa0163b33bdab6258559" + integrity sha512-gJxG1HwmuMTJ+oWIRCmVWvgwotNCbByTwRkFZC6U4MBsHqJBmxwbYRJUmxy4Tke1ef8r9jfXjgkmY/uHOCEvbA== dependencies: prop-types "^15.8.1" @@ -6911,7 +7545,7 @@ react-test-renderer@18.2.0: react-shallow-renderer "^16.15.0" scheduler "^0.23.0" -react-transition-group@^4.3.0, react-transition-group@^4.4.2, react-transition-group@^4.4.5: +react-transition-group@^4.3.0, react-transition-group@^4.4.5: version "4.4.5" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== @@ -6921,10 +7555,10 @@ react-transition-group@^4.3.0, react-transition-group@^4.4.2, react-transition-g loose-envify "^1.4.0" prop-types "^15.6.2" -react-virtualized@9.22.3: - version "9.22.3" - resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.22.3.tgz#f430f16beb0a42db420dbd4d340403c0de334421" - integrity sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw== +react-virtualized@9.22.5: + version "9.22.5" + resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.22.5.tgz#bfb96fed519de378b50d8c0064b92994b3b91620" + integrity sha512-YqQMRzlVANBv1L/7r63OHa2b0ZsAaDp1UhVNEdUaXI8A5u6hTpA5NYtUueLH2rFuY/27mTGIBl7ZhqFKzw18YQ== dependencies: "@babel/runtime" "^7.7.2" clsx "^1.0.4" @@ -6933,18 +7567,17 @@ react-virtualized@9.22.3: prop-types "^15.7.2" react-lifecycles-compat "^3.0.4" -react-wordcloud@1.2.7: +"react-wordcloud@https://github.com/ahmohamed/react-wordcloud": version "1.2.7" - resolved "https://registry.yarnpkg.com/react-wordcloud/-/react-wordcloud-1.2.7.tgz#6a21d9a64a8f9b0f7d12eef789156538794e685c" - integrity sha512-pyXvL8Iu2J258Qk2/kAwY23dIVhNpMC3dnvbXRkw5+Ert5EkJWwnwVjs9q8CmX38NWbfCKhGmpjuumBoQEtniw== + resolved "https://github.com/ahmohamed/react-wordcloud#78cf25de0fcd422d935b06e557fc199cc127673c" dependencies: - d3-array "^2.5.0" + d3-array "3" d3-cloud "^1.2.5" d3-dispatch "^1.0.6" d3-scale "^3.2.1" - d3-scale-chromatic "^1.5.0" - d3-selection "1.4.2" - d3-transition "^1.3.2" + d3-scale-chromatic "3" + d3-selection "3" + d3-transition "3" lodash.clonedeep "^4.5.0" lodash.debounce "^4.0.8" resize-observer-polyfill "^1.5.1" @@ -7011,7 +7644,14 @@ redux-thunk@2.4.2, redux-thunk@^2.4.2: resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.2.tgz#b9d05d11994b99f7a91ea223e8b04cf0afa5ef3b" integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== -redux@4.2.0, redux@^4.0.0, redux@^4.0.5, redux@^4.2.0: +redux@4.2.1, redux@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" + +redux@^4.0.0, redux@^4.0.5: version "4.2.0" resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13" integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA== @@ -7054,14 +7694,14 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-transform@^0.15.0: +regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -7070,11 +7710,6 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - regexpu-core@^5.1.0: version "5.2.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" @@ -7087,6 +7722,18 @@ regexpu-core@^5.1.0: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + regjsgen@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" @@ -7114,10 +7761,10 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -reselect@^4.1.7: - version "4.1.7" - resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.7.tgz#56480d9ff3d3188970ee2b76527bd94a95567a42" - integrity sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A== +reselect@^4.1.8: + version "4.1.8" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" + integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== resize-observer-polyfill@^1.5.1: version "1.5.1" @@ -7141,12 +7788,21 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@1.22.2, resolve@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -resolve@1.22.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.3.2: +resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.3.2: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -7155,7 +7811,7 @@ resolve@1.22.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3: +resolve@^2.0.0-next.4: version "2.0.0-next.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== @@ -7183,6 +7839,13 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +run-applescript@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" + integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== + dependencies: + execa "^5.0.0" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -7209,18 +7872,17 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.2.0.tgz#80195050f58c9aac63b792fa52acb6f5e0f6bdc3" - integrity sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg== +sass-loader@13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.2.tgz#460022de27aec772480f03de17f5ba88fa7e18c6" + integrity sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg== dependencies: - klona "^2.0.4" neo-async "^2.6.2" -sass@^1.60.0: - version "1.60.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.60.0.tgz#657f0c23a302ac494b09a5ba8497b739fb5b5a81" - integrity sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ== +sass@^1.63.6: + version "1.63.6" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea" + integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -7240,7 +7902,7 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.0.0, schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -7249,6 +7911,15 @@ schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + schema-utils@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" @@ -7264,23 +7935,35 @@ seedrandom@^3.0.5: resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== -semver@7.x, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - semver@^5.3.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.4, semver@^7.3.7, semver@^7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +semver@^7.5.1, semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + sentence-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" @@ -7290,10 +7973,10 @@ sentence-case@^3.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" -serialize-javascript@6.0.0, serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +serialize-javascript@6.0.1, serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== dependencies: randombytes "^2.1.0" @@ -7330,7 +8013,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -7340,6 +8023,11 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -7530,6 +8218,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -7544,42 +8237,63 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" +strip-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" + integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== + dependencies: + min-indent "^1.0.1" + strip-json-comments@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.2.tgz#5a48ab96023dbac1b7b8d0ffabf6f63f1677be9f" integrity sha512-zRzQSDu8YVDoLt1cVFfznCS6Y0wxWphJiG6+2d9YLZQJKooieRoVa518RFGK/P7m9ZsNyDEiknOJkdPQu7exVw== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-loader@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" - integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== - -styled-components@5.3.6: - version "5.3.6" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.6.tgz#27753c8c27c650bee9358e343fc927966bfd00d1" - integrity sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/traverse" "^7.4.5" - "@emotion/is-prop-valid" "^1.1.0" - "@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" +style-loader@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" + integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== + +styled-components@6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.4.tgz#55bb3a1197daf8075ae8b345b57eb03f2570d51e" + integrity sha512-lRJt4vg8hKJhlVG+VKz8QEqPCXKyTryZZ59odyK0UC0HHV3u/mshWTfSay8NpkN0Xijw1iN9r0Leld3dcCcp/w== + dependencies: + "@babel/cli" "^7.21.0" + "@babel/core" "^7.21.0" + "@babel/helper-module-imports" "^7.18.6" + "@babel/plugin-external-helpers" "^7.18.6" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@babel/traverse" "^7.21.2" + "@emotion/is-prop-valid" "^1.2.1" + "@emotion/unitless" "^0.8.0" + "@types/stylis" "^4.0.2" + css-to-react-native "^3.2.0" + csstype "^3.1.2" + postcss "^8.4.23" shallowequal "^1.1.0" - supports-color "^5.5.0" + stylis "^4.3.0" + tslib "^2.5.0" stylis@4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== +stylis@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.0.tgz#abe305a669fc3d8777e10eefcfc73ad861c5588c" + integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ== + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -7592,7 +8306,7 @@ supports-color@^3.1.2: dependencies: has-flag "^1.0.0" -supports-color@^5.3.0, supports-color@^5.5.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -7623,39 +8337,47 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +synckit@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" + integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== + dependencies: + "@pkgr/utils" "^2.3.1" + tslib "^2.5.0" + tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terser-webpack-plugin@5.3.6, terser-webpack-plugin@^5.1.3: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== +terser-webpack-plugin@5.3.9, terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: - "@jridgewell/trace-mapping" "^0.3.14" + "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.14.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" -terser@^5.14.1: - version "5.15.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" - integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== +terser@^5.16.8: + version "5.19.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.0.tgz#7b3137b01226bdd179978207b9c8148754a6da9c" + integrity sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" -terser@^5.16.1: - version "5.16.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" - integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== +terser@^5.19.1: + version "5.19.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.1.tgz#dbd7231f224a9e2401d0f0959542ed74d76d340b" + integrity sha512-27hxBUVdV6GoNg1pKQ7Z5cbR6V9txPVyBA+FQw3BaZ1Wuzvztce5p156DaP0NVZNrMZZ+6iG9Syf7WgMNKDg2Q== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -7690,6 +8412,11 @@ tippy.js@^6.2.6: dependencies: "@popperjs/core" "^2.9.0" +titleize@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" + integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -7724,24 +8451,29 @@ tr46@^3.0.0: dependencies: punycode "^2.1.1" -ts-jest@29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.3.tgz#63ea93c5401ab73595440733cefdba31fcf9cb77" - integrity sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ== +ts-api-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" + integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== + +ts-jest@29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.1.tgz#f58fe62c63caf7bfcc5cc6472082f79180f0815b" + integrity sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" jest-util "^29.0.0" - json5 "^2.2.1" + json5 "^2.2.3" lodash.memoize "4.x" make-error "1.x" - semver "7.x" + semver "^7.5.3" yargs-parser "^21.0.1" -ts-loader@9.4.2: - version "9.4.2" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78" - integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA== +ts-loader@9.4.4: + version "9.4.4" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.4.tgz#6ceaf4d58dcc6979f84125335904920884b7cee4" + integrity sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w== dependencies: chalk "^4.1.0" enhanced-resolve "^5.0.0" @@ -7763,15 +8495,20 @@ tslib@^1.13.0, tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.4.0: +tslib@^2.0.3, tslib@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== -tslib@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.5.0, tslib@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + +tslib@~2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== tslint@6.1.3: version "6.1.3" @@ -7835,15 +8572,10 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -typed-styles@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" - integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== - -typescript@4.9.4: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== +typescript@5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== unbox-primitive@^1.0.2: version "1.0.2" @@ -7865,6 +8597,11 @@ uncontrollable@^7.2.1: invariant "^2.2.4" react-lifecycles-compat "^3.0.4" +uncontrollable@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-8.0.2.tgz#ed11b9b6c785b6a471365bcd9a6789cebc4c7849" + integrity sha512-/GDx+K1STGtpgTsj5Dj3J51YaKxZDblbCQHTH1zHLuoBEWodj6MjtRVv3TUijj1JYLRLSFsFzN8NV4M3QV4d9w== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -7898,6 +8635,19 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + update-browserslist-db@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" @@ -7969,7 +8719,7 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-to-istanbul@^9.0.0, v8-to-istanbul@^9.0.1: +v8-to-istanbul@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== @@ -7978,15 +8728,15 @@ v8-to-istanbul@^9.0.0, v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" -vis-data@7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/vis-data/-/vis-data-7.1.4.tgz#90e5e796a79e1901de14c0808fb32a1a0735c1dc" - integrity sha512-usy+ePX1XnArNvJ5BavQod7YRuGQE1pjFl+pu7IS6rCom2EBoG0o1ZzCqf3l5US6MW51kYkLR+efxRbnjxNl7w== +vis-data@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/vis-data/-/vis-data-7.1.6.tgz#81dcf4d024d23183cacb680ad605e644cdd6ee6c" + integrity sha512-lG7LJdkawlKSXsdcEkxe/zRDyW29a4r7N7PMwxCPxK12/QIdqxJwcMxwjVj9ozdisRhP5TyWDHZwsgjmj0g6Dg== -vis-network@9.1.2: - version "9.1.2" - resolved "https://registry.yarnpkg.com/vis-network/-/vis-network-9.1.2.tgz#ddaca300a9764bbf1646a0aa03eb28fe55823ca8" - integrity sha512-BdapguKg7sk3NvdZaDsM7T6rNhOBFz0/F4ZScxctK4klRzQPLQPTEcmbioXaZhMkkgWymzBR3lFCxL1q+eYyAw== +vis-network@9.1.6: + version "9.1.6" + resolved "https://registry.yarnpkg.com/vis-network/-/vis-network-9.1.6.tgz#943df07e829248943656a2f19a7ec87cc1b707de" + integrity sha512-Eiwx1JleAsUqfy4pzcsFngCVlCEdjAtRPB/OwCV7PHBm+o2jtE4IZPcPITAEGUlxvL4Fdw7/lZsfD32dL+IL6g== void-elements@3.1.0: version "3.1.0" @@ -8027,17 +8777,17 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-cli@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.1.tgz#95fc0495ac4065e9423a722dec9175560b6f2d9a" - integrity sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A== +webpack-cli@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.0.1" - "@webpack-cli/info" "^2.0.1" - "@webpack-cli/serve" "^2.0.1" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" colorette "^2.0.14" - commander "^9.4.1" + commander "^10.0.1" cross-spawn "^7.0.3" envinfo "^7.7.3" fastest-levenshtein "^1.0.12" @@ -8059,22 +8809,22 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.76.0: - version "5.76.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.0.tgz#f9fb9fb8c4a7dbdcd0d56a98e56b8a942ee2692c" - integrity sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA== +webpack@5.88.2: + version "5.88.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" + integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== 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" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -8083,9 +8833,9 @@ webpack@5.76.0: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.0" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" + terser-webpack-plugin "^5.3.7" watchpack "^2.4.0" webpack-sources "^3.2.3" @@ -8154,7 +8904,7 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -8180,7 +8930,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.1: +write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== @@ -8238,29 +8988,11 @@ yaml@^2.1.1: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.0.tgz#882c762992888b4144bffdec5745df340627fdd3" integrity sha512-auf7Gi6QwO7HW//GA9seGvTXVGWl1CM/ADWh1+RxtXr6XOxnT65ovDl9fTi4e0monEyJxCHqDpF6QnFDXmJE4g== -yargs-parser@^20.2.2, yargs-parser@^20.2.9: - version "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.1, 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@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - 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" - yargs@^17.0.0, yargs@^17.3.1: version "17.6.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" @@ -8278,3 +9010,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==