From a19269faefe069f353cd65b1b906dc506e87cdcb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:34:54 +0000 Subject: [PATCH 1/2] Bump react and @types/react in /extensions/ql-vscode Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) and [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react). These dependencies needed to be updated together. Updates `react` from 18.3.1 to 19.1.1 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.1.1/packages/react) Updates `@types/react` from 18.3.12 to 19.1.12 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: react dependency-version: 19.1.1 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: "@types/react" dependency-version: 19.1.12 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 27 +++++++++----------------- extensions/ql-vscode/package.json | 4 ++-- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index ef550d50a1d..b88c64fb567 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -29,7 +29,7 @@ "nanoid": "^5.0.7", "p-queue": "^8.0.1", "proper-lockfile": "^4.1.2", - "react": "^18.3.1", + "react": "^19.1.1", "react-dom": "^18.3.1", "semver": "^7.6.2", "source-map": "^0.7.6", @@ -86,7 +86,7 @@ "@types/js-yaml": "^4.0.6", "@types/node": "22.17.*", "@types/proper-lockfile": "^4.1.4", - "@types/react": "^18.3.12", + "@types/react": "^19.1.13", "@types/react-dom": "^18.3.1", "@types/sarif": "^2.1.2", "@types/semver": "^7.5.8", @@ -8242,12 +8242,6 @@ "postcss": "^8.0.0" } }, - "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", - "dev": true - }, "node_modules/@types/proper-lockfile": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@types/proper-lockfile/-/proper-lockfile-4.1.4.tgz", @@ -8259,13 +8253,12 @@ } }, "node_modules/@types/react": { - "version": "18.3.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", - "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "version": "19.1.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.13.tgz", + "integrity": "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, @@ -23394,12 +23387,10 @@ } }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 596df710654..baeb57af761 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2021,7 +2021,7 @@ "nanoid": "^5.0.7", "p-queue": "^8.0.1", "proper-lockfile": "^4.1.2", - "react": "^18.3.1", + "react": "^19.1.1", "react-dom": "^18.3.1", "semver": "^7.6.2", "source-map": "^0.7.6", @@ -2078,7 +2078,7 @@ "@types/js-yaml": "^4.0.6", "@types/node": "22.17.*", "@types/proper-lockfile": "^4.1.4", - "@types/react": "^18.3.12", + "@types/react": "^19.1.13", "@types/react-dom": "^18.3.1", "@types/sarif": "^2.1.2", "@types/semver": "^7.5.8", From b3d48e39ec4a381a0ecd8fbf7ef8898b10b6519c Mon Sep 17 00:00:00 2001 From: Robert Date: Tue, 23 Sep 2025 16:25:01 +0000 Subject: [PATCH 2/2] Fix react ref types --- .../src/view/model-alerts/ModelAlertsResults.tsx | 2 +- extensions/ql-vscode/src/view/model-editor/MethodRow.tsx | 2 +- extensions/ql-vscode/src/view/results/AlertTable.tsx | 2 +- .../ql-vscode/src/view/results/AlertTablePathNodeRow.tsx | 8 ++++++-- .../ql-vscode/src/view/results/AlertTablePathRow.tsx | 8 ++++++-- .../ql-vscode/src/view/results/AlertTableResultRow.tsx | 8 ++++++-- extensions/ql-vscode/src/view/results/RawTable.tsx | 2 +- extensions/ql-vscode/src/view/results/RawTableRow.tsx | 8 ++++++-- .../src/view/results/__tests__/AlertTablePathRow.spec.tsx | 4 +++- .../view/results/__tests__/AlertTableResultRow.spec.tsx | 4 +++- .../ql-vscode/src/view/results/useScrollIntoView.tsx | 2 +- 11 files changed, 35 insertions(+), 15 deletions(-) diff --git a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx index d10757e3748..97cad659d80 100644 --- a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx +++ b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx @@ -79,7 +79,7 @@ export const ModelAlertsResults = ({ [modelAlerts.model], ); - const ref = useRef(); + const ref = useRef(undefined); useEffect(() => { if ( diff --git a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx index 6e753c3532d..14b030786a5 100644 --- a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx @@ -85,7 +85,7 @@ export type MethodRowProps = { export const MethodRow = (props: MethodRowProps) => { const { method, methodCanBeModeled, revealedMethodSignature } = props; - const ref = useRef(); + const ref = useRef(undefined); useEffect(() => { if (method.signature === revealedMethodSignature) { diff --git a/extensions/ql-vscode/src/view/results/AlertTable.tsx b/extensions/ql-vscode/src/view/results/AlertTable.tsx index c4a07658422..f8bdb08566e 100644 --- a/extensions/ql-vscode/src/view/results/AlertTable.tsx +++ b/extensions/ql-vscode/src/view/results/AlertTable.tsx @@ -44,7 +44,7 @@ export function AlertTable({ undefined, ); - const selectedItemRef = useRef(null); + const selectedItemRef = useRef(undefined); useScrollIntoView(selectedItem, selectedItemRef); /** diff --git a/extensions/ql-vscode/src/view/results/AlertTablePathNodeRow.tsx b/extensions/ql-vscode/src/view/results/AlertTablePathNodeRow.tsx index 54f6a81c712..c709dc17db5 100644 --- a/extensions/ql-vscode/src/view/results/AlertTablePathNodeRow.tsx +++ b/extensions/ql-vscode/src/view/results/AlertTablePathNodeRow.tsx @@ -18,7 +18,7 @@ interface Props { pathIndex: number; resultIndex: number; selectedItem: undefined | ResultKey; - selectedItemRef: React.RefObject; + selectedItemRef: React.RefObject; databaseUri: string; sourceLocationPrefix: string; run?: Run; @@ -61,7 +61,11 @@ export function AlertTablePathNodeRow(props: Props) { const zebraIndex = resultIndex + stepIndex; return ( ) + : undefined + } className={isSelected ? "vscode-codeql__selected-path-node" : undefined} > diff --git a/extensions/ql-vscode/src/view/results/AlertTablePathRow.tsx b/extensions/ql-vscode/src/view/results/AlertTablePathRow.tsx index db8af0efdb9..55dfb308cc9 100644 --- a/extensions/ql-vscode/src/view/results/AlertTablePathRow.tsx +++ b/extensions/ql-vscode/src/view/results/AlertTablePathRow.tsx @@ -19,7 +19,7 @@ export interface Props { resultIndex: number; currentPathExpanded: boolean; selectedItem: undefined | ResultKey; - selectedItemRef: React.RefObject; + selectedItemRef: React.RefObject; databaseUri: string; sourceLocationPrefix: string; run?: Run; @@ -55,7 +55,11 @@ export function AlertTablePathRow(props: Props) { return ( <> ) + : undefined + } {...selectableZebraStripe(isPathSpecificallySelected, resultIndex)} > diff --git a/extensions/ql-vscode/src/view/results/AlertTableResultRow.tsx b/extensions/ql-vscode/src/view/results/AlertTableResultRow.tsx index 3ab31ed3f7f..e78cb1fe666 100644 --- a/extensions/ql-vscode/src/view/results/AlertTableResultRow.tsx +++ b/extensions/ql-vscode/src/view/results/AlertTableResultRow.tsx @@ -20,7 +20,7 @@ export interface Props { resultIndex: number; expanded: Set; selectedItem: undefined | ResultKey; - selectedItemRef: React.RefObject; + selectedItemRef: React.RefObject; databaseUri: string; sourceLocationPrefix: string; run?: Run; @@ -93,7 +93,11 @@ export function AlertTableResultRow(props: Props) { return ( <> ) + : undefined + } {...selectableZebraStripe(resultRowIsSelected, resultIndex)} > {result.codeFlows === undefined ? ( diff --git a/extensions/ql-vscode/src/view/results/RawTable.tsx b/extensions/ql-vscode/src/view/results/RawTable.tsx index b49ab07071b..f27a19dc5b3 100644 --- a/extensions/ql-vscode/src/view/results/RawTable.tsx +++ b/extensions/ql-vscode/src/view/results/RawTable.tsx @@ -38,7 +38,7 @@ export function RawTable({ }: RawTableProps) { const [selectedItem, setSelectedItem] = useState(); - const selectedItemRef = useRef(null); + const selectedItemRef = useRef(undefined); useScrollIntoView(selectedItem, selectedItemRef); const setSelection = useCallback((row: number, column: number): void => { diff --git a/extensions/ql-vscode/src/view/results/RawTableRow.tsx b/extensions/ql-vscode/src/view/results/RawTableRow.tsx index b7e45074842..96c2610f966 100644 --- a/extensions/ql-vscode/src/view/results/RawTableRow.tsx +++ b/extensions/ql-vscode/src/view/results/RawTableRow.tsx @@ -8,7 +8,7 @@ interface Props { databaseUri: string; className?: string; selectedColumn?: number; - selectedItemRef?: React.Ref; + selectedItemRef?: React.RefObject; onSelected?: (row: number, column: number) => void; } @@ -24,7 +24,11 @@ export default function RawTableRow(props: Props) { const isSelected = props.selectedColumn === columnIndex; return ( ) + : undefined + } key={columnIndex} {...(isSelected ? { className: selectedRowClassName } : {})} > diff --git a/extensions/ql-vscode/src/view/results/__tests__/AlertTablePathRow.spec.tsx b/extensions/ql-vscode/src/view/results/__tests__/AlertTablePathRow.spec.tsx index 001fa322a34..89865102a0f 100644 --- a/extensions/ql-vscode/src/view/results/__tests__/AlertTablePathRow.spec.tsx +++ b/extensions/ql-vscode/src/view/results/__tests__/AlertTablePathRow.spec.tsx @@ -5,7 +5,9 @@ import { createMockResults } from "../../../../test/factories/results/mockresult describe(AlertTablePathRow.name, () => { const render = (props?: Props) => { - const mockRef = { current: null } as React.RefObject; + const mockRef = { current: undefined } as React.RefObject< + HTMLTableRowElement | undefined + >; const results = createMockResults(); const threadFlow = results[0]?.codeFlows?.[0]?.threadFlows?.[0]; diff --git a/extensions/ql-vscode/src/view/results/__tests__/AlertTableResultRow.spec.tsx b/extensions/ql-vscode/src/view/results/__tests__/AlertTableResultRow.spec.tsx index 9082384e9d2..8d31abe3fea 100644 --- a/extensions/ql-vscode/src/view/results/__tests__/AlertTableResultRow.spec.tsx +++ b/extensions/ql-vscode/src/view/results/__tests__/AlertTableResultRow.spec.tsx @@ -5,7 +5,9 @@ import { createMockResults } from "../../../../test/factories/results/mockresult describe(AlertTableResultRow.name, () => { const render = (props?: Props) => { - const mockRef = { current: null } as React.RefObject; + const mockRef = { current: undefined } as React.RefObject< + HTMLTableRowElement | undefined + >; const results = createMockResults(); reactRender( diff --git a/extensions/ql-vscode/src/view/results/useScrollIntoView.tsx b/extensions/ql-vscode/src/view/results/useScrollIntoView.tsx index ab03b94a142..d8bc0b51a0b 100644 --- a/extensions/ql-vscode/src/view/results/useScrollIntoView.tsx +++ b/extensions/ql-vscode/src/view/results/useScrollIntoView.tsx @@ -3,7 +3,7 @@ import { useEffect } from "react"; export function useScrollIntoView( selectedElement: T | undefined, - selectedElementRef: RefObject, + selectedElementRef: RefObject, ) { useEffect(() => { const element = selectedElementRef.current;