diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 44bdc563ee0..1d1131eb7ed 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -29,8 +29,8 @@ "nanoid": "^5.0.7", "p-queue": "^8.0.1", "proper-lockfile": "^4.1.2", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.2.3", + "react-dom": "^19.2.3", "semver": "^7.6.2", "source-map": "^0.7.6", "source-map-support": "^0.5.21", @@ -84,8 +84,8 @@ "@types/js-yaml": "^4.0.6", "@types/node": "22.19.*", "@types/proper-lockfile": "^4.1.4", - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.2.3", + "@types/react-dom": "^19.2.3", "@types/sarif": "^2.1.2", "@types/semver": "^7.5.8", "@types/stream-json": "^1.7.1", @@ -8364,12 +8364,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", @@ -8381,23 +8375,23 @@ } }, "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.2.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.3.tgz", + "integrity": "sha512-k5dJVszUiNr1DSe8Cs+knKR6IrqhqdhpUwzqhkS8ecQTSf3THNtbfIp/umqHMpX2bv+9dkx3fwDv/86LcSfvSg==", "dev": true, "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "dev": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" } }, "node_modules/@types/resolve": { @@ -19938,7 +19932,8 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "4.1.1", @@ -21120,6 +21115,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -23810,12 +23806,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.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -23858,15 +23852,15 @@ "dev": true }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.2.3" } }, "node_modules/react-is": { @@ -24685,12 +24679,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" }, "node_modules/semver": { "version": "7.7.3", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 7e4b19a02ff..d8c22205e5b 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2080,8 +2080,8 @@ "nanoid": "^5.0.7", "p-queue": "^8.0.1", "proper-lockfile": "^4.1.2", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.2.3", + "react-dom": "^19.2.3", "semver": "^7.6.2", "source-map": "^0.7.6", "source-map-support": "^0.5.21", @@ -2135,8 +2135,8 @@ "@types/js-yaml": "^4.0.6", "@types/node": "22.19.*", "@types/proper-lockfile": "^4.1.4", - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.2.3", + "@types/react-dom": "^19.2.3", "@types/sarif": "^2.1.2", "@types/semver": "^7.5.8", "@types/stream-json": "^1.7.1", diff --git a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx index d10757e3748..809baac0494 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..03a1abdd44c 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/AlertTablePathNodeRow.tsx b/extensions/ql-vscode/src/view/results/AlertTablePathNodeRow.tsx index 54f6a81c712..463e211eb26 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; diff --git a/extensions/ql-vscode/src/view/results/AlertTablePathRow.tsx b/extensions/ql-vscode/src/view/results/AlertTablePathRow.tsx index db8af0efdb9..986b7c5fae5 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; diff --git a/extensions/ql-vscode/src/view/results/AlertTableResultRow.tsx b/extensions/ql-vscode/src/view/results/AlertTableResultRow.tsx index 3ab31ed3f7f..30642d1a064 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; 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..2f11d18955c 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: null, + } as React.RefObject; 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..d23c0ac7722 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: null, + } as React.RefObject; 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..f61d8789cfd 100644 --- a/extensions/ql-vscode/src/view/results/useScrollIntoView.tsx +++ b/extensions/ql-vscode/src/view/results/useScrollIntoView.tsx @@ -1,9 +1,9 @@ import type { RefObject } from "react"; import { useEffect } from "react"; -export function useScrollIntoView( +export function useScrollIntoView( selectedElement: T | undefined, - selectedElementRef: RefObject, + selectedElementRef: RefObject, ) { useEffect(() => { const element = selectedElementRef.current;