From c6d7a0a8da496057ecf7dc84f1e066f0b7421d2c Mon Sep 17 00:00:00 2001 From: Aditya Toshniwal Date: Tue, 1 Oct 2024 16:32:04 +0530 Subject: [PATCH] Add missing eslint React rules and fix the linter errors. --- web/.eslintrc.js | 10 +- web/package.json | 2 +- .../js/components/PreferencesComponent.jsx | 1 + .../DataGridView/features/reorder.jsx | 4 + web/pgadmin/static/js/SchemaView/FormView.jsx | 14 +- .../static/js/SchemaView/InlineView.jsx | 3 +- .../static/js/SchemaView/MappedControl.jsx | 8 +- .../static/js/SchemaView/ResetButton.jsx | 7 + .../static/js/SchemaView/SaveButton.jsx | 13 +- .../static/js/SchemaView/SchemaDialogView.jsx | 4 +- .../static/js/components/SearchInputText.jsx | 1 + .../js/components/QueryToolDataGrid/index.jsx | 4 +- .../js/components/sections/GeometryViewer.jsx | 3 +- .../components/sections/ResultSetToolbar.jsx | 7 + .../js/components/sections/StatusBar.jsx | 8 +- .../feature_tests/query_tool_tests.py | 3 +- web/regression/javascript/fake_theme.js | 1 + .../javascript/genericFunctions.jsx | 1 + web/yarn.lock | 289 +++++++++--------- 19 files changed, 223 insertions(+), 160 deletions(-) diff --git a/web/.eslintrc.js b/web/.eslintrc.js index 9376bb9c5e8..86ae79332f7 100644 --- a/web/.eslintrc.js +++ b/web/.eslintrc.js @@ -44,6 +44,8 @@ module.exports = [ '@babel/plugin-proposal-class-properties', ], }, + ...reactjs.configs.recommended.parserOptions, + ...reactjs.configs['jsx-runtime'].parserOptions, }, 'sourceType': 'module', globals: { @@ -86,8 +88,10 @@ module.exports = [ 'no-prototype-builtins': 'off', 'no-global-assign': 'off', 'no-import-assign': 'off', - 'react/jsx-uses-vars': 'error', - 'react/jsx-uses-react': 'error' + ...reactjs.configs.recommended.rules, + ...reactjs.configs['jsx-runtime'].rules, + 'react/jsx-uses-react': 'error', + 'react/jsx-uses-vars': 'error' }, 'settings': { 'react': { @@ -123,5 +127,5 @@ module.exports = [ 'jest/no-conditional-expect': 'off', 'jest/valid-title': 'off', }, - } + }, ]; diff --git a/web/package.json b/web/package.json index 758bca4fd73..9c98ad516e5 100644 --- a/web/package.json +++ b/web/package.json @@ -61,7 +61,7 @@ "svgo-loader": "^4.0.0", "terser-webpack-plugin": "^5.1.1", "typescript": "^5.4.5", - "typescript-eslint": "^8.3.0", + "typescript-eslint": "^8.8.0", "url-loader": "^4.1.1", "webfonts-loader": "^8.0.1", "webpack": "^5.88.2", diff --git a/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx b/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx index 0521908b294..d135576dbc5 100644 --- a/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx +++ b/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx @@ -161,6 +161,7 @@ function RightPanel({ schema, refreshKey, ...props }) { RightPanel.propTypes = { schema: PropTypes.object, + refreshKey: PropTypes.number, initValues: PropTypes.object, onDataChange: PropTypes.func }; diff --git a/web/pgadmin/static/js/SchemaView/DataGridView/features/reorder.jsx b/web/pgadmin/static/js/SchemaView/DataGridView/features/reorder.jsx index 991fe96fcd6..1786378bd2e 100644 --- a/web/pgadmin/static/js/SchemaView/DataGridView/features/reorder.jsx +++ b/web/pgadmin/static/js/SchemaView/DataGridView/features/reorder.jsx @@ -17,6 +17,7 @@ import { booleanEvaluator, registerOptionEvaluator } from '../../options'; import { ACTION_COLUMN } from './common'; import Feature from './feature'; +import PropTypes from 'prop-types'; // Register the 'canReorder' options for the collection @@ -61,6 +62,9 @@ export default class Reorder extends Feature { }; Cell.displayName = 'ReorderCell'; + Cell.propTypes = { + row: PropTypes.object, + }; columns.splice(0, 0, { ...ACTION_COLUMN, diff --git a/web/pgadmin/static/js/SchemaView/FormView.jsx b/web/pgadmin/static/js/SchemaView/FormView.jsx index e82b094aae7..32cd03c53da 100644 --- a/web/pgadmin/static/js/SchemaView/FormView.jsx +++ b/web/pgadmin/static/js/SchemaView/FormView.jsx @@ -59,7 +59,7 @@ const ErrorMessageBox = () => { // The first component of schema view form. export default function FormView({ - accessPath, schema=null, isNested=false, dataDispatch, className, + accessPath, schema=null, isNested=false, dataDispatch, className, hasSQLTab, getSQLValue, isTabView=true, viewHelperProps, field, showError=false, resetKey, focusOnFirstInput=false }) { @@ -133,7 +133,7 @@ export default function FormView({ onScreenTracker.current = false; } }, [isOnScreen]); - + listenDepChanges( accessPath, field, schemaState, () => subscriberManager.current?.signal() ); @@ -180,7 +180,7 @@ export default function FormView({ scrollButtons="auto" action={(ref) => ref?.updateIndicator()} >{ - finalGroups.map((tabGroup, idx) => + finalGroups.map((tabGroup, idx) => ) - }{hasSQLTab && + }{hasSQLTab && } - + { finalGroups.map((group, idx) => { let contentClassName = [ @@ -238,7 +238,7 @@ export default function FormView({ }) } { - hasSQLTab && + hasSQLTab && { ); }; +StaticMappedFormControl.propTypes = { + accessPath: PropTypes.array.isRequired, + field: PropTypes.object, +}; export const MappedFormControl = ({ accessPath, dataDispatch, field, onChange, ...props @@ -415,6 +419,8 @@ export const MappedFormControl = ({ }; MappedFormControl.propTypes = { + accessPath: PropTypes.array.isRequired, + field: PropTypes.object, id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, }; diff --git a/web/pgadmin/static/js/SchemaView/ResetButton.jsx b/web/pgadmin/static/js/SchemaView/ResetButton.jsx index 7fb53223816..d763d40a766 100644 --- a/web/pgadmin/static/js/SchemaView/ResetButton.jsx +++ b/web/pgadmin/static/js/SchemaView/ResetButton.jsx @@ -11,6 +11,7 @@ import React, { useContext, useEffect, useState } from 'react'; import { DefaultButton } from 'sources/components/Buttons'; import { SchemaStateContext } from './SchemaState'; +import PropTypes from 'prop-types'; export function ResetButton({label, icon, onClick}) { @@ -40,3 +41,9 @@ export function ResetButton({label, icon, onClick}) { ); } + +ResetButton.propTypes = { + label: PropTypes.string, + icon: PropTypes.any, + onClick: PropTypes.func, +}; diff --git a/web/pgadmin/static/js/SchemaView/SaveButton.jsx b/web/pgadmin/static/js/SchemaView/SaveButton.jsx index a78c4395bda..7d9ab6285a4 100644 --- a/web/pgadmin/static/js/SchemaView/SaveButton.jsx +++ b/web/pgadmin/static/js/SchemaView/SaveButton.jsx @@ -11,10 +11,11 @@ import React, { useContext, useEffect, useState } from 'react'; import { PrimaryButton } from 'sources/components/Buttons'; import { SchemaStateContext } from './SchemaState'; +import PropTypes from 'prop-types'; export function SaveButton({ - label, Icon, checkDirtyOnEnableSave, onClick, mode, + label, icon, checkDirtyOnEnableSave, onClick, mode, }) { const [key, setKey] = useState(0); const schemaState = useContext(SchemaStateContext); @@ -41,10 +42,18 @@ export function SaveButton({ return ( {label} ); } + +SaveButton.propTypes = { + label: PropTypes.string, + icon: PropTypes.any, + onClick: PropTypes.func, + checkDirtyOnEnableSave: PropTypes.bool, + mode: PropTypes.string, +}; diff --git a/web/pgadmin/static/js/SchemaView/SchemaDialogView.jsx b/web/pgadmin/static/js/SchemaView/SchemaDialogView.jsx index b13fc5af9dc..126fecd70d3 100644 --- a/web/pgadmin/static/js/SchemaView/SchemaDialogView.jsx +++ b/web/pgadmin/static/js/SchemaView/SchemaDialogView.jsx @@ -172,8 +172,6 @@ export default function SchemaDialogView({ return ; }; - let ButtonIcon = getButtonIcon(); - /* I am Groot */ return useMemo(() => @@ -219,7 +217,7 @@ export default function SchemaDialogView({ icon={} label={ gettext('Reset') }/> ({ backgroundColor: theme.palette.grey[600], }, '& .rdg-cell:nth-of-type(1)[aria-selected="true"]':{ - backgroundColor: theme.palette.primary.main, + backgroundColor: theme.palette.primary.main, color: theme.palette.primary.contrastText, }, }, @@ -321,6 +321,7 @@ function RowNumColFormatter({row, rowKeyGetter, rowIdx, dataChangeStore, onSelec RowNumColFormatter.propTypes = { row: PropTypes.object, rowKeyGetter: PropTypes.func, + rowIdx: PropTypes.number, dataChangeStore: PropTypes.object, onSelectedColumnsChange: PropTypes.func, }; @@ -460,4 +461,5 @@ QueryToolDataGrid.propTypes = { onSelectedColumnsChange: PropTypes.func, rowKeyGetter: PropTypes.func, columnWidthBy: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + startRowNum: PropTypes.number, }; diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/GeometryViewer.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/GeometryViewer.jsx index 46d7ab1c6c1..e254c9dbc0f 100644 --- a/web/pgadmin/tools/sqleditor/static/js/components/sections/GeometryViewer.jsx +++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/GeometryViewer.jsx @@ -276,6 +276,7 @@ GeoJsonLayer.propTypes = { getPopupContent: PropTypes.func, infoList: PropTypes.array, }), + setHomeCoordinates: PropTypes.func, }; function TheMap({data}) { @@ -311,7 +312,7 @@ function TheMap({data}) { this._map.setView(this.options.homeCoordinates.getCenter(), this.options.homeZoom); } }; - + zoomControlWithHome.current.onAdd = function (map) { let controlName = 'leaflet-control-zoom', container = Leaflet.DomUtil.create('div', controlName + ' leaflet-bar'), diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx index f0144094b53..7fe0f9bf273 100644 --- a/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx +++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx @@ -225,6 +225,11 @@ function PaginationInputs({pagination, totalRowCount, clearSelection}) { ); } +PaginationInputs.propTypes = { + pagination: PropTypes.object, + totalRowCount: PropTypes.number, + clearSelection: PropTypes.func, +}; export function ResultSetToolbar({query, canEdit, totalRowCount, pagination, allRowsSelect}) { const eventBus = useContext(QueryToolEventsContext); const queryToolCtx = useContext(QueryToolContext); @@ -450,4 +455,6 @@ ResultSetToolbar.propTypes = { query: PropTypes.string, canEdit: PropTypes.bool, totalRowCount: PropTypes.number, + allRowsSelect: PropTypes.string, + pagination: PropTypes.object, }; diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/StatusBar.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/StatusBar.jsx index 557db3e45a2..151fce51df1 100644 --- a/web/pgadmin/tools/sqleditor/static/js/components/sections/StatusBar.jsx +++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/StatusBar.jsx @@ -16,6 +16,7 @@ import { useStopwatch } from '../../../../../../static/js/custom_hooks'; import { QueryToolEventsContext } from '../QueryToolComponent'; import gettext from 'sources/gettext'; import { PgMenu, PgMenuItem, usePgMenuGroup } from '../../../../../../static/js/components/Menu'; +import PropTypes from 'prop-types'; const StyledBox = styled(Box)(({theme}) => ({ @@ -110,7 +111,7 @@ export function StatusBar({eol, handleEndOfLineChange}) { return ( - {rowsCount && {gettext('Total rows: %s', rowsCount)}} + {gettext('Total rows: %s', rowsCount)} {lastTaskText && {lastTaskText} {hours.toString().padStart(2, '0')}:{minutes.toString().padStart(2, '0')}:{seconds.toString().padStart(2, '0')}.{msec.toString().padStart(3, '0')} } @@ -157,3 +158,8 @@ export function StatusBar({eol, handleEndOfLineChange}) { ); } + +StatusBar.propTypes = { + eol: PropTypes.string, + handleEndOfLineChange: PropTypes.func, +}; diff --git a/web/regression/feature_tests/query_tool_tests.py b/web/regression/feature_tests/query_tool_tests.py index 2f14f809d73..351f1c38440 100644 --- a/web/regression/feature_tests/query_tool_tests.py +++ b/web/regression/feature_tests/query_tool_tests.py @@ -154,7 +154,8 @@ def _pagination_result(self): QueryToolLocators.pagination_inputs + f' span:nth-of-type(1)') - self.assertEqual(page_info.text, f"Showing: {page['page_info']}") + self.assertEqual(page_info.text, + f"Showing rows: {page['page_info']}") page_info = self.page.find_by_css_selector( QueryToolLocators.pagination_inputs + ' span:nth-of-type(3)') diff --git a/web/regression/javascript/fake_theme.js b/web/regression/javascript/fake_theme.js index b60d7218efc..f634c1fe50f 100644 --- a/web/regression/javascript/fake_theme.js +++ b/web/regression/javascript/fake_theme.js @@ -2,6 +2,7 @@ import React from 'react'; import Theme from 'sources/Theme'; export function withTheme(WrappedComp) { + /* eslint-disable react/display-name */ return (props)=>{ return ; }; diff --git a/web/regression/javascript/genericFunctions.jsx b/web/regression/javascript/genericFunctions.jsx index ab58144fb85..126871c596a 100644 --- a/web/regression/javascript/genericFunctions.jsx +++ b/web/regression/javascript/genericFunctions.jsx @@ -18,6 +18,7 @@ import { act, render } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; export function withBrowser(WrappedComp) { + /* eslint-disable react/display-name */ return (props)=>{ return diff --git a/web/yarn.lock b/web/yarn.lock index e4dc910b3aa..28dcc349950 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -1610,13 +1610,13 @@ __metadata: linkType: hard "@codemirror/lint@npm:^6.0.0": - version: 6.8.1 - resolution: "@codemirror/lint@npm:6.8.1" + version: 6.8.2 + resolution: "@codemirror/lint@npm:6.8.2" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: faa222b679770baf094ea707251e27d6eef347157006223c22d7726fb5adc9d77257f36c366367ec729cb6286aca3276d30a470e0d0ea9a884ec948e798668e9 + checksum: 714fe911c2d600350ea8ca0f65ceb2de25ace511e71bf174a550ba0aefc9884ec4e099f0f500b55bfd0fccbd7fe3a342a0048ff5a49c8c20020ea16cc8bff3c3 languageName: node linkType: hard @@ -1639,13 +1639,13 @@ __metadata: linkType: hard "@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0": - version: 6.33.0 - resolution: "@codemirror/view@npm:6.33.0" + version: 6.34.1 + resolution: "@codemirror/view@npm:6.34.1" dependencies: "@codemirror/state": ^6.4.0 style-mod: ^4.1.0 w3c-keyname: ^2.2.4 - checksum: e28896a7fb40df8e7221fbebfc2cd92c10c6963948e20f3a4300e99c897fbddd091f4fc90cc30eeaf90d07c61dcf6170cd3c164810606fa07337ffb970ffdac2 + checksum: 5c7bf199f0b45a3cc192f08c2ac89e5ab972f313cb4f2c979edf6e05b27bccd60c6cb42d5dacb6813ef3a928d75476eb0a00ffdeffd7431c8e9f44bab4f6e12e languageName: node linkType: hard @@ -1852,6 +1852,13 @@ __metadata: languageName: node linkType: hard +"@eslint/core@npm:^0.6.0": + version: 0.6.0 + resolution: "@eslint/core@npm:0.6.0" + checksum: bf6a285d8cfb7f76524041991832fcc1573c7fc4bdfa091a14972bdb719d5a735330efb88ec453dd33930f49bcc9bb2737b40c43fb1220933781ebb712667265 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^3.1.0": version: 3.1.0 resolution: "@eslint/eslintrc@npm:3.1.0" @@ -1869,10 +1876,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.11.0": - version: 9.11.0 - resolution: "@eslint/js@npm:9.11.0" - checksum: 3e3a8945c7f97b29187f3a6b05c9bb1e3e373d75f94c16b7499565df7c343d5e5e0a14e177bb75c368c6022bb33aa3d17775386a5f39d9085f9f522862d4bd4a +"@eslint/js@npm:9.11.1": + version: 9.11.1 + resolution: "@eslint/js@npm:9.11.1" + checksum: 6fdd1958b25223588dd002a7497a395abb71dd1f25626ecd16ebcb8dd0fca7b74104a8172c192dfff131b49faa2b469be36a179b6ca096b6f55afb1f9b6fa952 languageName: node linkType: hard @@ -3233,7 +3240,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^1.0.5": +"@types/estree@npm:^1.0.5, @types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 @@ -3295,7 +3302,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -3319,11 +3326,11 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 22.5.5 - resolution: "@types/node@npm:22.5.5" + version: 22.7.4 + resolution: "@types/node@npm:22.7.4" dependencies: undici-types: ~6.19.2 - checksum: 1f788966ff7df07add0af3481fb68c7fe5091cc72a265c671432abb443788ddacca4ca6378af64fe100c20f857c4d80170d358e66c070171fcea0d4adb1b45b1 + checksum: a3f4154147639369aed08fe6f8d62eff637cf87b187bb252d7bbccdc82884626007af424b08a653c53f2182adfa0340001b4888cb7cbb942cef351210fc742a5 languageName: node linkType: hard @@ -3367,12 +3374,12 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.0.2": - version: 18.3.8 - resolution: "@types/react@npm:18.3.8" + version: 18.3.10 + resolution: "@types/react@npm:18.3.10" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: a2cc2034746cde564a49a9d7f1ae57214bc83adb0daafd4724dc400569adc54c5a489c0e7d8656752b8748908a364d6811e4d7a2adc7f18a7f7179728d20147a + checksum: 04261654b5f4bc9584e9d882c7dfd5b36dc58963f958f8c3efd24cb68c9d205bc2d57558a1479b86d7827f0e5116d5bd111791d1253583d1e1c165f0aeb48c48 languageName: node linkType: hard @@ -3415,15 +3422,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.6.0" +"@typescript-eslint/eslint-plugin@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.8.0" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 8.6.0 - "@typescript-eslint/type-utils": 8.6.0 - "@typescript-eslint/utils": 8.6.0 - "@typescript-eslint/visitor-keys": 8.6.0 + "@typescript-eslint/scope-manager": 8.8.0 + "@typescript-eslint/type-utils": 8.8.0 + "@typescript-eslint/utils": 8.8.0 + "@typescript-eslint/visitor-keys": 8.8.0 graphemer: ^1.4.0 ignore: ^5.3.1 natural-compare: ^1.4.0 @@ -3434,66 +3441,66 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 6acab71c3066b86ba19b081c44b7060df4468d932813a94ad3b60f0f88b78b97f3555a0605814e32f8399737c0789e72cb509a6cf6d70e4823a7cc8769d06fa4 + checksum: 495bb8cb5136e8e11651fa23569057ac714774a235c9d522de238f7179ab62074021cba633ed611880e3df96c562a6087c9c8a53bd5d7f8a0050e643ff518dd6 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/parser@npm:8.6.0" +"@typescript-eslint/parser@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/parser@npm:8.8.0" dependencies: - "@typescript-eslint/scope-manager": 8.6.0 - "@typescript-eslint/types": 8.6.0 - "@typescript-eslint/typescript-estree": 8.6.0 - "@typescript-eslint/visitor-keys": 8.6.0 + "@typescript-eslint/scope-manager": 8.8.0 + "@typescript-eslint/types": 8.8.0 + "@typescript-eslint/typescript-estree": 8.8.0 + "@typescript-eslint/visitor-keys": 8.8.0 debug: ^4.3.4 peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: d2e1c1ef4b908d2c028b6e1c72b42c0ae0d9f4dab0dea4ea8e0a36a194ec2171833e7bed36e55e0feadad3e06eef1c6da16168a3687d0e2182b80229dc994e2d + checksum: e80dc53bb3be86bad5ff3e3e0a86fb9d5b11e7ba10d9750d22202b8cbdae5d8d267be00a9e914756dade9116e08682733cf2ab59172cc09a4e6a2d99de1799e0 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/scope-manager@npm:8.6.0" +"@typescript-eslint/scope-manager@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/scope-manager@npm:8.8.0" dependencies: - "@typescript-eslint/types": 8.6.0 - "@typescript-eslint/visitor-keys": 8.6.0 - checksum: d0a305c659eab02ad36265e77a1e30574a72a3e251b24c503537abd5b1dbe45a1db7d63dc73bdcc7fb4951f671cb5cbaedca1130490c764dd05f91e90c5cbbf9 + "@typescript-eslint/types": 8.8.0 + "@typescript-eslint/visitor-keys": 8.8.0 + checksum: 039eb955251b1ed1a43eb776ffc6af1bfc4c0e533d2bace78d25b17c1a9ff13969806199eedf1623a71787cdfd825b1cd040b1862b8da2d62248e0697436b25b languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/type-utils@npm:8.6.0" +"@typescript-eslint/type-utils@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/type-utils@npm:8.8.0" dependencies: - "@typescript-eslint/typescript-estree": 8.6.0 - "@typescript-eslint/utils": 8.6.0 + "@typescript-eslint/typescript-estree": 8.8.0 + "@typescript-eslint/utils": 8.8.0 debug: ^4.3.4 ts-api-utils: ^1.3.0 peerDependenciesMeta: typescript: optional: true - checksum: d395745176cc13d96759e4ad7b698058f4fc24b62d0bd3fe603f49546f369cbf3e46fefbcc6069c33b1b0d825e033e0a5a972fd0b1a05f7ce9e8588154a02b93 + checksum: b13ccbf84b8ad644bdbe1c61c4796e80844b1d4b70a235b2226c6a96509074401c50c127e5eaaf92e7b240a54db89b7dbbbd7acd51b02a652547267e5f9e2593 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/types@npm:8.6.0" - checksum: 5bf0078735b5d2804e1019ff17e9f221af3735fe7b9f4a77a41cba0998e77eebb2c152575bd45a264cb35d7a9db899799c1a10faa29f536c28a804420fb9f870 +"@typescript-eslint/types@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/types@npm:8.8.0" + checksum: a97f6733c429845938f1ce0f770352b5b7748d3410f9582127bcb50d49df09c88d5210204842ee916caabf1e76649591274c58be7b25be70dbb3589851dfe711 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.6.0" +"@typescript-eslint/typescript-estree@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.8.0" dependencies: - "@typescript-eslint/types": 8.6.0 - "@typescript-eslint/visitor-keys": 8.6.0 + "@typescript-eslint/types": 8.8.0 + "@typescript-eslint/visitor-keys": 8.8.0 debug: ^4.3.4 fast-glob: ^3.3.2 is-glob: ^4.0.3 @@ -3503,31 +3510,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 7a0e817b5c381f8937a8e4bf17df5ce43e1269ee150ee635cc8bb8867cb899fcca630eb8f6f1dfdd74ddd296741ac7e1e26ef6c9dc4f99cdcf49311956fbb385 + checksum: ef04d80ab5e25362476c463e3208c58633ea87814604a19d2368f99e5027e2c37612e7c2a6f47203ce86e4d86ed8849f338e1ce6c06bd40e18b9bcc49f9a887c languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.6.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.6.0 - resolution: "@typescript-eslint/utils@npm:8.6.0" +"@typescript-eslint/utils@npm:8.8.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": + version: 8.8.0 + resolution: "@typescript-eslint/utils@npm:8.8.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 8.6.0 - "@typescript-eslint/types": 8.6.0 - "@typescript-eslint/typescript-estree": 8.6.0 + "@typescript-eslint/scope-manager": 8.8.0 + "@typescript-eslint/types": 8.8.0 + "@typescript-eslint/typescript-estree": 8.8.0 peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: dbb2efe47c291d36d5ec147f8c8fe62d27e9db2a3368aefd9019fd1e118bd1a54c8b13b990bb0941c9510bc4e2049b336e9a26d6414a6239c020e36baa8797e2 + checksum: e7a631005a9855d142b27041cd9556a8b817bbce315a373f8a0d7620f6fb9294149bd384ccd2efa75568d607452d8964060dae70360bbe6cd9ffac3438c48a45 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.6.0" +"@typescript-eslint/visitor-keys@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.8.0" dependencies: - "@typescript-eslint/types": 8.6.0 + "@typescript-eslint/types": 8.8.0 eslint-visitor-keys: ^3.4.3 - checksum: de60bb42674818af46b85a94f668e93dc0432e8d7d94f0508dadab41181192fad2c2701ec3533d404e9bd40c8e92384fd7bcdc82fc45584b7323195ceaf32caf + checksum: 0190f7da372f0af376250317c3e181d54aadae7cfea208714d978afc8f5858a190617f6eb168f117532819f5b768671ef51afa283be37c9319e0e662eedd0188 languageName: node linkType: hard @@ -4636,7 +4643,7 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^5.0.0, bn.js@npm:^5.2.1": +"bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 @@ -4774,12 +4781,13 @@ __metadata: linkType: hard "browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": - version: 4.1.0 - resolution: "browserify-rsa@npm:4.1.0" + version: 4.1.1 + resolution: "browserify-rsa@npm:4.1.1" dependencies: - bn.js: ^5.0.0 - randombytes: ^2.0.1 - checksum: 155f0c135873efc85620571a33d884aa8810e40176125ad424ec9d85016ff105a07f6231650914a760cca66f29af0494087947b7be34880dd4599a0cd3c38e54 + bn.js: ^5.2.1 + randombytes: ^2.1.0 + safe-buffer: ^5.2.1 + checksum: 2628508646331791c29312bbf274c076a237437a17178ea9bdc75c577fb4164a0da0b137deaadf6ade623701332377c5c2ceb0ff6f991c744a576e790ec95852 languageName: node linkType: hard @@ -4869,16 +4877,16 @@ __metadata: linkType: hard "browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" + version: 4.24.0 + resolution: "browserslist@npm:4.24.0" dependencies: - caniuse-lite: ^1.0.30001646 - electron-to-chromium: ^1.5.4 + caniuse-lite: ^1.0.30001663 + electron-to-chromium: ^1.5.28 node-releases: ^2.0.18 update-browserslist-db: ^1.1.0 bin: browserslist: cli.js - checksum: 7906064f9970aeb941310b2fcb8b4ace4a1b50aa657c986677c6f1553a8cabcc94ee9c5922f715baffbedaa0e6cf0831b6fed7b059dde6873a4bfadcbe069c7e + checksum: de200d3eb8d6ed819dad99719099a28fb6ebeb88016a5ac42fbdc11607e910c236a84ca1b0bbf232477d4b88ab64e8ab6aa67557cdd40a73ca9c2834f92ccce0 languageName: node linkType: hard @@ -5108,10 +5116,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001663 - resolution: "caniuse-lite@npm:1.0.30001663" - checksum: 489a642feb6826a0fc7cfd7dbc35a3341cc1439eafdf0dae79338cf9033c5d9eddaedacbef7935acaddbb3c226a51097ed53d66dc6d8128cd6938c6763e1bbc4 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001646, caniuse-lite@npm:^1.0.30001663": + version: 1.0.30001664 + resolution: "caniuse-lite@npm:1.0.30001664" + checksum: cee25b4ea8a84779b7c9a60c1f9e304f6d99b79ef622b25fbc7873b4e55e8722a1091dd6c8b77bd7723e9f26a84b4a820a50a864989dd477e7ee51dc30461dca languageName: node linkType: hard @@ -6655,10 +6663,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.4": - version: 1.5.27 - resolution: "electron-to-chromium@npm:1.5.27" - checksum: 1a32103306b92732979db40f299e013b94b284a80745c26390ceaee2bf76ef71a4167b1ababc17dc3d24cf4c27d5aa95dcf7c256c55c329164f726553dc9ea9a +"electron-to-chromium@npm:^1.5.28": + version: 1.5.30 + resolution: "electron-to-chromium@npm:1.5.30" + checksum: b1a9003d32b7ef2075580941e868e1ba9a5b57e8e8e6b7a26462dea830c194d26906a00c92366b41e09bb794ff37ae73865b5c25cbe1f96ae931fc3faf6ded64 languageName: node linkType: hard @@ -6938,7 +6946,7 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1, escalade@npm:^3.1.2": +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e @@ -7012,8 +7020,8 @@ __metadata: linkType: hard "eslint-plugin-react@npm:^7.34.3": - version: 7.36.1 - resolution: "eslint-plugin-react@npm:7.36.1" + version: 7.37.0 + resolution: "eslint-plugin-react@npm:7.37.0" dependencies: array-includes: ^3.1.8 array.prototype.findlast: ^1.2.5 @@ -7035,7 +7043,7 @@ __metadata: string.prototype.repeat: ^1.0.0 peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: bf3be414f3d639200a7d91feeaa6beec3397feed93ab22eaecef44dda37ecbd01812ed1720c72a9861fb276d3543cea69a834a66f64de3d878796fef4f4bf129 + checksum: ece92e28b34ced0fd6bddebd41234ee53187b236fd507abef4f61cc868e27edd94fb7e290f44ff546037a6862c3302e848185a5e6511e2bcdf1883a1bfaa4ffc languageName: node linkType: hard @@ -7057,12 +7065,12 @@ __metadata: linkType: hard "eslint-scope@npm:^8.0.2": - version: 8.0.2 - resolution: "eslint-scope@npm:8.0.2" + version: 8.1.0 + resolution: "eslint-scope@npm:8.1.0" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: bd1e7a0597ec605cf3bc9b35c9e13d7ea6c11fee031b0cada9e8993b0ecf16d81d6f40f1dcd463424af439abf53cd62302ea25707c1599689eb2750d6aa29688 + checksum: 3ce9392ec74f35f84eddad7755941cb5f7e3a1bc53cf902e95e541384ef78b604bec1489933f37c663e4686b36c31533d06cf0842be9a729a680c489efce7acb languageName: node linkType: hard @@ -7080,26 +7088,29 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.0.0": - version: 4.0.0 - resolution: "eslint-visitor-keys@npm:4.0.0" - checksum: 5c09f89cf29d87cdbfbac38802a880d3c2e65f8cb61c689888346758f1e24a4c7f6caefeac9474dfa52058a99920623599bdb00516976a30134abeba91275aa2 +"eslint-visitor-keys@npm:^4.0.0, eslint-visitor-keys@npm:^4.1.0": + version: 4.1.0 + resolution: "eslint-visitor-keys@npm:4.1.0" + checksum: b5d53725df14a6a225fd74d5e687f5f0547b0aaa3e1963ab6f4acb8dc80f99ad0bec11148e14b4a67de024dde7b4449e7e4c0b1524de605955dee7eefcdd7824 languageName: node linkType: hard -"eslint@npm:^9.11.0": - version: 9.11.0 - resolution: "eslint@npm:9.11.0" +"eslint@npm:^9.11.1": + version: 9.11.1 + resolution: "eslint@npm:9.11.1" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.11.0 "@eslint/config-array": ^0.18.0 + "@eslint/core": ^0.6.0 "@eslint/eslintrc": ^3.1.0 - "@eslint/js": 9.11.0 + "@eslint/js": 9.11.1 "@eslint/plugin-kit": ^0.2.0 "@humanwhocodes/module-importer": ^1.0.1 "@humanwhocodes/retry": ^0.3.0 "@nodelib/fs.walk": ^1.2.8 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 @@ -7132,18 +7143,18 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: d652c30645df59bbbcbce4eb92f69ddb112a28243253826e53485cae760df1c900c2ba3c80a86bd48ad648c9f3c781c173c2b03f750759cfdb3365f44d6c7d01 + checksum: 3d6c1648cd5437d3d9844d769f2ac6e6768d78c365fef6f7fc4248e96322ec61c2af26ade84c66350b26b3416d0207ac18e10ac1f801448a3eec423f8cd6d691 languageName: node linkType: hard "espree@npm:^10.0.1, espree@npm:^10.1.0": - version: 10.1.0 - resolution: "espree@npm:10.1.0" + version: 10.2.0 + resolution: "espree@npm:10.2.0" dependencies: acorn: ^8.12.0 acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^4.0.0 - checksum: a4708ab987f6c03734b8738b1588e9f31b2e305e869ca4677c60d82294eb05f7099b6687eb39eeb0913bb2d49bdf0bd0f31c511599ea7ee171281f871a9c897e + eslint-visitor-keys: ^4.1.0 + checksum: 16ee75c2f6029622a70a675ad8989fffc6f7199265d07af516a11e4adc9eb2d03866fceff33f1a081c42621df79871e508f8fc8fe5855eac2de925b58196711b languageName: node linkType: hard @@ -7406,9 +7417,9 @@ __metadata: linkType: hard "fast-uri@npm:^3.0.1": - version: 3.0.1 - resolution: "fast-uri@npm:3.0.1" - checksum: 106143ff83705995225dcc559411288f3337e732bb2e264e79788f1914b6bd8f8bc3683102de60b15ba00e6ebb443633cabac77d4ebc5cb228c47cf955e199ff + version: 3.0.2 + resolution: "fast-uri@npm:3.0.2" + checksum: ca00aadc84e0ab93a8a1700c386bc7cbeb49f47d9801083c258444eed31221fdf864d68fb48ea8acd7c512bf046b53c09e3aafd6d4bdb9449ed21be29d8d6f75 languageName: node linkType: hard @@ -11269,9 +11280,9 @@ __metadata: linkType: hard "nwsapi@npm:^2.2.2": - version: 2.2.12 - resolution: "nwsapi@npm:2.2.12" - checksum: 4dbce7ecbcf336eef1edcbb5161cbceea95863e63a16d9bcec8e81cbb260bdab3d07e6c7b58354d465dc803eef6d0ea4fb20220a80fa148ae65f18d56df81799 + version: 2.2.13 + resolution: "nwsapi@npm:2.2.13" + checksum: d34fb7838517c3c7e8cc824e443275b08b57f6a025a860693d18c56ddcfd176e32df9bf0ae7f5a95c7a32981501caa1f9fda31b59f28aa72a4b9d01f573a8e6b languageName: node linkType: hard @@ -11588,9 +11599,9 @@ __metadata: linkType: hard "package-json-from-dist@npm:^1.0.0": - version: 1.0.0 - resolution: "package-json-from-dist@npm:1.0.0" - checksum: ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 languageName: node linkType: hard @@ -13853,7 +13864,7 @@ __metadata: cssnano: ^5.0.2 date-fns: ^3.6.0 diff-arrays-of-objects: ^1.1.8 - eslint: ^9.11.0 + eslint: ^9.11.1 eslint-plugin-jest: ^28.8.0 eslint-plugin-react: ^7.34.3 eslint-plugin-react-hooks: ^4.3.0 @@ -13918,7 +13929,7 @@ __metadata: svgo-loader: ^4.0.0 terser-webpack-plugin: ^5.1.1 typescript: ^5.4.5 - typescript-eslint: ^8.3.0 + typescript-eslint: ^8.8.0 uplot: ^1.6.24 uplot-react: ^1.1.4 url-loader: ^4.1.1 @@ -15139,8 +15150,8 @@ __metadata: linkType: hard "terser@npm:^5.26.0": - version: 5.33.0 - resolution: "terser@npm:5.33.0" + version: 5.34.1 + resolution: "terser@npm:5.34.1" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.8.2 @@ -15148,7 +15159,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: e0012bffa595470f481a19952dde18e5a58836eafc63305cf86823fc4406b187ba1b4d6856e1662fb0f464a844a21e7bccf68919128fc43343d58b6ad49485f1 + checksum: 19a6710e17ff3f20d3b0661090640a572ce5ff6f2e95c731bb5a9eb1dcc1fe563cd0f1e4a22cde89b2717667336252bc2adb8894bdfbec6d1996b3e70b44f365 languageName: node linkType: hard @@ -15452,17 +15463,17 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^8.3.0": - version: 8.6.0 - resolution: "typescript-eslint@npm:8.6.0" +"typescript-eslint@npm:^8.8.0": + version: 8.8.0 + resolution: "typescript-eslint@npm:8.8.0" dependencies: - "@typescript-eslint/eslint-plugin": 8.6.0 - "@typescript-eslint/parser": 8.6.0 - "@typescript-eslint/utils": 8.6.0 + "@typescript-eslint/eslint-plugin": 8.8.0 + "@typescript-eslint/parser": 8.8.0 + "@typescript-eslint/utils": 8.8.0 peerDependenciesMeta: typescript: optional: true - checksum: cc773dae0fd7ad568e58d7001ee1adb7d880e9dadd3953ff762d3a1d38bb3a8d0da2e2fdade804a90f23d9f426e5b94c7262b2747eb471ce342ed2cc3878bdaa + checksum: a2954b4a9f43f3d6dc63a3948fd6fc56b0023f0a4b2aa6a27659e0c1217f2a45042594a29a762aa395cfa8efa82e10af21acfa28d2ae9619cd91e80639a62d80 languageName: node linkType: hard @@ -15644,16 +15655,16 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.1.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" + version: 1.1.1 + resolution: "update-browserslist-db@npm:1.1.1" dependencies: - escalade: ^3.1.2 - picocolors: ^1.0.1 + escalade: ^3.2.0 + picocolors: ^1.1.0 peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562 + checksum: 2ea11bd2562122162c3e438d83a1f9125238c0844b6d16d366e3276d0c0acac6036822dc7df65fc5a89c699cdf9f174acf439c39bedf3f9a2f3983976e4b4c3e languageName: node linkType: hard @@ -15668,9 +15679,9 @@ __metadata: linkType: hard "uplot@npm:^1.6.24": - version: 1.6.30 - resolution: "uplot@npm:1.6.30" - checksum: 5627d02eb62c68cf127d94c5c12da791572be1f116d018c375dde73b640275054bcc66a849c379f4b2f038a983f096fd62ab0fcaa46734feaa68fdbcbca1d160 + version: 1.6.31 + resolution: "uplot@npm:1.6.31" + checksum: 5ef8d5a01122b77eef2f8c83ea2b5630f9e43f979758f76bb4032b895797afdfe666d0ec588150db0bec7494068ee62b3944cb1b74fcd588f717fda48879a6c8 languageName: node linkType: hard @@ -16005,8 +16016,8 @@ __metadata: linkType: hard "webpack@npm:^5.88.2": - version: 5.94.0 - resolution: "webpack@npm:5.94.0" + version: 5.95.0 + resolution: "webpack@npm:5.95.0" dependencies: "@types/estree": ^1.0.5 "@webassemblyjs/ast": ^1.12.1 @@ -16036,7 +16047,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 6a3d667be304a69cd6dcb8d676bc29f47642c0d389af514cfcd646eaaa809961bc6989fc4b2621a717dfc461130f29c6e20006d62a32e012dafaa9517813a4e6 + checksum: 0c3dfe288de4d62f8f3dc25478a618894883cab739121330763b7847e43304630ea2815ae2351a5f8ff6ab7c9642caf530d503d89bda261fe2cd220e524dd5d1 languageName: node linkType: hard