From 53d0c861dc07c048901ef56aaa4f918b90bdabc0 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Wed, 19 Mar 2025 14:03:12 -0700 Subject: [PATCH 001/100] Add "actions" as an analysis language --- .../ql-vscode/src/common/query-language.ts | 18 +++++++++++++++++- .../language-selection-data-provider.ts | 1 + .../query-history/store/query-history-dto.ts | 1 + .../query-history-language-domain-mapper.ts | 2 ++ .../store/query-history-language-dto-mapper.ts | 2 ++ .../skeleton-query-wizard.test.ts | 1 + .../cli-integration/run-cli.test.ts | 17 +++++++---------- 7 files changed, 31 insertions(+), 11 deletions(-) diff --git a/extensions/ql-vscode/src/common/query-language.ts b/extensions/ql-vscode/src/common/query-language.ts index 2cf0155b578..ae08de7a370 100644 --- a/extensions/ql-vscode/src/common/query-language.ts +++ b/extensions/ql-vscode/src/common/query-language.ts @@ -1,4 +1,5 @@ export enum QueryLanguage { + Actions = "actions", CSharp = "csharp", Cpp = "cpp", Go = "go", @@ -11,6 +12,8 @@ export enum QueryLanguage { export function getLanguageDisplayName(language: string): string { switch (language) { + case QueryLanguage.Actions: + return "Actions"; case QueryLanguage.CSharp: return "C#"; case QueryLanguage.Cpp: @@ -33,6 +36,7 @@ export function getLanguageDisplayName(language: string): string { } export const PACKS_BY_QUERY_LANGUAGE = { + [QueryLanguage.Actions]: ["codeql/actions-queries"], [QueryLanguage.Cpp]: ["codeql/cpp-queries"], [QueryLanguage.CSharp]: [ "codeql/csharp-queries", @@ -46,7 +50,7 @@ export const PACKS_BY_QUERY_LANGUAGE = { }; export const dbSchemeToLanguage: Record = { - "semmlecode.javascript.dbscheme": QueryLanguage.Javascript, + "semmlecode.javascript.dbscheme": QueryLanguage.Javascript, // This can also be QueryLanguage.Actions "semmlecode.cpp.dbscheme": QueryLanguage.Cpp, "semmlecode.dbscheme": QueryLanguage.Java, "semmlecode.python.dbscheme": QueryLanguage.Python, @@ -56,6 +60,18 @@ export const dbSchemeToLanguage: Record = { "swift.dbscheme": QueryLanguage.Swift, }; +export const languageToDbScheme = Object.entries(dbSchemeToLanguage).reduce( + (acc, [k, v]) => { + acc[v] = k; + return acc; + }, + {} as { [k: string]: string }, +); + +// Actions dbscheme is the same as Javascript dbscheme +languageToDbScheme[QueryLanguage.Actions] = + languageToDbScheme[QueryLanguage.Javascript]; + export function isQueryLanguage(language: string): language is QueryLanguage { return Object.values(QueryLanguage).includes(language as QueryLanguage); } diff --git a/extensions/ql-vscode/src/language-selection-panel/language-selection-data-provider.ts b/extensions/ql-vscode/src/language-selection-panel/language-selection-data-provider.ts index f2e06b50cb8..89d16be193e 100644 --- a/extensions/ql-vscode/src/language-selection-panel/language-selection-data-provider.ts +++ b/extensions/ql-vscode/src/language-selection-panel/language-selection-data-provider.ts @@ -9,6 +9,7 @@ import { const ALL_LANGUAGE_SELECTION_OPTIONS = [ undefined, // All languages + QueryLanguage.Actions, QueryLanguage.Cpp, QueryLanguage.CSharp, QueryLanguage.Go, diff --git a/extensions/ql-vscode/src/query-history/store/query-history-dto.ts b/extensions/ql-vscode/src/query-history/store/query-history-dto.ts index bec7a2ad5da..9f333581e8d 100644 --- a/extensions/ql-vscode/src/query-history/store/query-history-dto.ts +++ b/extensions/ql-vscode/src/query-history/store/query-history-dto.ts @@ -14,6 +14,7 @@ export type QueryHistoryItemDto = | QueryHistoryVariantAnalysisDto; export enum QueryLanguageDto { + Actions = "actions", CSharp = "csharp", Cpp = "cpp", Go = "go", diff --git a/extensions/ql-vscode/src/query-history/store/query-history-language-domain-mapper.ts b/extensions/ql-vscode/src/query-history/store/query-history-language-domain-mapper.ts index fe8c64b5e47..ce2e3e03124 100644 --- a/extensions/ql-vscode/src/query-history/store/query-history-language-domain-mapper.ts +++ b/extensions/ql-vscode/src/query-history/store/query-history-language-domain-mapper.ts @@ -6,6 +6,8 @@ export function mapQueryLanguageToDto( language: QueryLanguage, ): QueryLanguageDto { switch (language) { + case QueryLanguage.Actions: + return QueryLanguageDto.Actions; case QueryLanguage.CSharp: return QueryLanguageDto.CSharp; case QueryLanguage.Cpp: diff --git a/extensions/ql-vscode/src/query-history/store/query-history-language-dto-mapper.ts b/extensions/ql-vscode/src/query-history/store/query-history-language-dto-mapper.ts index deea1bfd80b..e2679404dc1 100644 --- a/extensions/ql-vscode/src/query-history/store/query-history-language-dto-mapper.ts +++ b/extensions/ql-vscode/src/query-history/store/query-history-language-dto-mapper.ts @@ -6,6 +6,8 @@ export function mapQueryLanguageToDomainModel( language: QueryLanguageDto, ): QueryLanguage { switch (language) { + case QueryLanguageDto.Actions: + return QueryLanguage.Actions; case QueryLanguageDto.CSharp: return QueryLanguage.CSharp; case QueryLanguageDto.Cpp: diff --git a/extensions/ql-vscode/test/vscode-tests/cli-integration/local-queries/skeleton-query-wizard.test.ts b/extensions/ql-vscode/test/vscode-tests/cli-integration/local-queries/skeleton-query-wizard.test.ts index 9076ec9bed4..cd7c8297ba1 100644 --- a/extensions/ql-vscode/test/vscode-tests/cli-integration/local-queries/skeleton-query-wizard.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/cli-integration/local-queries/skeleton-query-wizard.test.ts @@ -78,6 +78,7 @@ describe("SkeletonQueryWizard", () => { getSupportedLanguages: jest .fn() .mockResolvedValue([ + "actions", "ruby", "javascript", "go", diff --git a/extensions/ql-vscode/test/vscode-tests/cli-integration/run-cli.test.ts b/extensions/ql-vscode/test/vscode-tests/cli-integration/run-cli.test.ts index ef92ee39e06..326cfdf4892 100644 --- a/extensions/ql-vscode/test/vscode-tests/cli-integration/run-cli.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/cli-integration/run-cli.test.ts @@ -16,7 +16,7 @@ import { faker } from "@faker-js/faker"; import { getActivatedExtension } from "../global.helper"; import type { BaseLogger } from "../../../src/common/logging"; import { getQlPackForDbscheme } from "../../../src/databases/qlpack"; -import { dbSchemeToLanguage } from "../../../src/common/query-language"; +import { languageToDbScheme } from "../../../src/common/query-language"; /** * Perform proper integration tests by running the CLI @@ -27,14 +27,6 @@ describe("Use cli", () => { let logSpy: jest.SpiedFunction; - const languageToDbScheme = Object.entries(dbSchemeToLanguage).reduce( - (acc, [k, v]) => { - acc[v] = k; - return acc; - }, - {} as { [k: string]: string }, - ); - beforeEach(async () => { const extension = await getActivatedExtension(); cli = extension.cliServer; @@ -107,12 +99,17 @@ describe("Use cli", () => { itWithCodeQL()( "should resolve printAST queries for supported languages", async () => { - for (const lang of supportedLanguages) { + for (let lang of supportedLanguages) { if (lang === "go") { // The codeql-go submodule is not available in the integration tests. return; } + if (lang === "actions") { + // The actions queries use the javascript dbscheme. + lang = "javascript"; + } + console.log(`resolving printAST queries for ${lang}`); const pack = await getQlPackForDbscheme(cli, languageToDbScheme[lang]); expect(pack.dbschemePack).toContain(lang); From 27476d02a8df016d3b877cdb1e7dbd57d98b514a Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Tue, 1 Apr 2025 13:31:21 +0000 Subject: [PATCH 002/100] Add @vscode-elements/elements package --- extensions/ql-vscode/package-lock.json | 84 ++++++++++++++++++++++++++ extensions/ql-vscode/package.json | 1 + 2 files changed, 85 insertions(+) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 7d8c90bdf56..410eb784b9d 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -14,6 +14,7 @@ "@octokit/plugin-retry": "^7.2.0", "@octokit/plugin-throttling": "^9.6.0", "@octokit/rest": "^21.1.1", + "@vscode-elements/react-elements": "^0.9.0", "@vscode/codicons": "^0.0.36", "@vscode/debugadapter": "^1.59.0", "@vscode/debugprotocol": "^1.68.0", @@ -5051,6 +5052,30 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz", + "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@lit/react": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.7.tgz", + "integrity": "sha512-cencnwwLXQKiKxjfFzSgZRngcWJzUDZi/04E0fSaF86wZgchMdvTyu+lE36DrUfvuus3bH8+xLPrhM1cTjwpzw==", + "license": "BSD-3-Clause", + "peerDependencies": { + "@types/react": "17 || 18 || 19" + } + }, + "node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0" + } + }, "node_modules/@mdx-js/react": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", @@ -7565,6 +7590,12 @@ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, "node_modules/@types/undertaker": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.11.tgz", @@ -8525,6 +8556,28 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vscode-elements/elements": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@vscode-elements/elements/-/elements-1.14.0.tgz", + "integrity": "sha512-fUOP8O/Pwy8zbD8hGSy1plBg/764hdM9jIMu8uG7GQJOrOB+uQ/ystYxkiUcN6P7OBHvqkBKO1j6vDrkaOJg6Q==", + "license": "MIT", + "dependencies": { + "lit": "^3.2.1" + } + }, + "node_modules/@vscode-elements/react-elements": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@vscode-elements/react-elements/-/react-elements-0.9.0.tgz", + "integrity": "sha512-pGWp6OBDAZXJ0tZqN+2SCiKhvhW3/cE4XJyiVHXH4Ft6KteuNVg20oexFv0M66U9iAZElQjPF8M9pBBABLaUZg==", + "license": "ISC", + "dependencies": { + "@lit/react": "^1.0.6", + "@vscode-elements/elements": "^1.13.0" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, "node_modules/@vscode/codicons": { "version": "0.0.36", "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.36.tgz", @@ -20003,6 +20056,37 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/lit": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", + "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^2.0.4", + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" + } + }, + "node_modules/lit-element": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", + "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.2.0" + } + }, + "node_modules/lit-html": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", + "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 534055ad025..0c5d9b3d64d 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -1972,6 +1972,7 @@ "@octokit/plugin-retry": "^7.2.0", "@octokit/plugin-throttling": "^9.6.0", "@octokit/rest": "^21.1.1", + "@vscode-elements/react-elements": "^0.9.0", "@vscode/codicons": "^0.0.36", "@vscode/debugadapter": "^1.59.0", "@vscode/debugprotocol": "^1.68.0", From 25bb51c8f887f4f185caa4dd4fad9194d81d5e12 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Tue, 1 Apr 2025 13:32:11 +0000 Subject: [PATCH 003/100] Replace all VSCodeButton with VscodeButton --- extensions/ql-vscode/src/stories/Overview.mdx | 2 -- .../src/stories/common/Alert.stories.tsx | 6 ++--- .../compare-performance/RenamingInput.tsx | 14 +++++------ .../MultipleModeledMethodsPanel.tsx | 18 +++++++-------- .../view/model-alerts/ModelAlertsActions.tsx | 4 ++-- .../src/view/model-editor/LibraryRow.tsx | 19 +++++++-------- .../src/view/model-editor/MethodRow.tsx | 5 ++-- .../src/view/model-editor/ModelEditor.tsx | 23 ++++++++----------- .../src/view/model-editor/ModelEvaluation.tsx | 10 ++++---- .../VariantAnalysisActions.tsx | 4 ++-- 10 files changed, 48 insertions(+), 57 deletions(-) diff --git a/extensions/ql-vscode/src/stories/Overview.mdx b/extensions/ql-vscode/src/stories/Overview.mdx index cc06ee5cfca..7d9939cb4d9 100644 --- a/extensions/ql-vscode/src/stories/Overview.mdx +++ b/extensions/ql-vscode/src/stories/Overview.mdx @@ -1,7 +1,5 @@ import { Canvas, Meta, Story } from '@storybook/blocks'; -import { VSCodeButton } from '@vscode/webview-ui-toolkit/react'; - import iframeImage from './images/update-css-variables-iframe.png'; import stylesImage from './images/update-css-variables-styles.png'; import bodyImage from './images/update-css-variables-body.png'; diff --git a/extensions/ql-vscode/src/stories/common/Alert.stories.tsx b/extensions/ql-vscode/src/stories/common/Alert.stories.tsx index 1a5db4f14f6..29bad2ba33f 100644 --- a/extensions/ql-vscode/src/stories/common/Alert.stories.tsx +++ b/extensions/ql-vscode/src/stories/common/Alert.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryFn } from "@storybook/react"; -import { VSCodeButton } from "@vscode/webview-ui-toolkit/react"; +import { VscodeButton } from "@vscode-elements/react-elements"; import { VariantAnalysisContainer } from "../../view/variant-analysis/VariantAnalysisContainer"; import { Alert } from "../../view/common"; @@ -84,8 +84,8 @@ ErrorWithButtons.args = { "Request to https://api.github.com/repos/octodemo/Hello-World/code-scanning/codeql/queries failed. Try running this query again.", actions: ( <> - View actions logs - Retry + View actions logs + Retry ), }; diff --git a/extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx b/extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx index 6d86c7e8182..dfad2a2e13d 100644 --- a/extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx +++ b/extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx @@ -1,9 +1,7 @@ import type { ChangeEvent } from "react"; import { styled } from "styled-components"; -import { - VSCodeButton, - VSCodeTextField, -} from "@vscode/webview-ui-toolkit/react"; +import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"; +import { VscodeButton } from "@vscode-elements/react-elements"; import { Codicon } from "../common"; export class Renaming { @@ -86,21 +84,21 @@ export function RenamingInput(props: RenamingInputProps) { setRenamings(newRenamings); }} > - setRenamings(renamings.filter((_, i) => i !== index)) } > - +
))} - setRenamings([...renamings, new Renaming("", "")])} > Add renaming rule - + ); } diff --git a/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx b/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx index bb2fd6b2ab5..30b78c3fed1 100644 --- a/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx +++ b/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx @@ -7,7 +7,6 @@ import { } from "../../model-editor/shared/multiple-modeled-methods"; import { styled } from "styled-components"; import { MethodModelingInputs } from "./MethodModelingInputs"; -import { VSCodeButton } from "@vscode/webview-ui-toolkit/react"; import { Codicon } from "../common"; import { validateModeledMethods } from "../../model-editor/shared/validation"; import { ModeledMethodAlert } from "./ModeledMethodAlert"; @@ -15,6 +14,7 @@ import type { QueryLanguage } from "../../common/query-language"; import { createEmptyModeledMethod } from "../../model-editor/modeled-method-empty"; import { sendTelemetry } from "../common/telemetry"; import type { ModelConfig } from "../../model-editor/languages"; +import { VscodeButton } from "@vscode-elements/react-elements"; export type MultipleModeledMethodsPanelProps = { language: QueryLanguage; @@ -168,20 +168,20 @@ export const MultipleModeledMethodsPanel = ({ )}
- - + {modeledMethods.length > 1 && (
{selectedIndex + 1}/{modeledMethods.length}
)} - - +
- - - + - +
diff --git a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx index e99689634d2..b37e94282ec 100644 --- a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx +++ b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx @@ -1,6 +1,6 @@ import { styled } from "styled-components"; -import { VSCodeButton } from "@vscode/webview-ui-toolkit/react"; import { VariantAnalysisStatus } from "../../variant-analysis/shared/variant-analysis"; +import { VscodeButton } from "@vscode-elements/react-elements"; type ModelAlertsActionsProps = { variantAnalysisStatus: VariantAnalysisStatus; @@ -14,7 +14,7 @@ const Container = styled.div` gap: 1em; `; -const Button = styled(VSCodeButton)` +const Button = styled(VscodeButton)` white-space: nowrap; `; diff --git a/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx b/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx index bd285c7000f..55229e448b8 100644 --- a/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx @@ -7,14 +7,11 @@ import { calculateModeledPercentage } from "../../model-editor/shared/modeled-pe import { percentFormatter } from "./formatters"; import { Codicon } from "../common"; import { Mode } from "../../model-editor/shared/mode"; -import { - VSCodeButton, - VSCodeDivider, - VSCodeTag, -} from "@vscode/webview-ui-toolkit/react"; +import { VSCodeDivider, VSCodeTag } from "@vscode/webview-ui-toolkit/react"; import type { ModelEditorViewState } from "../../model-editor/shared/view-state"; import type { AccessPathSuggestionOptions } from "../../model-editor/suggestions"; import type { ModelEvaluationRunState } from "../../model-editor/shared/model-evaluation-run-state"; +import { VscodeButton } from "@vscode-elements/react-elements"; const LibraryContainer = styled.div` background-color: var(--vscode-peekViewResult-background); @@ -173,16 +170,16 @@ export const LibraryRow = ({ {viewState.showGenerateButton && viewState.mode === Mode.Application && ( - +  Model from source - + )} {viewState.mode === Mode.Application && ( - +  Model dependency - + )} {isExpanded && ( @@ -203,9 +200,9 @@ export const LibraryRow = ({ /> - + {selectedSignatures.size === 0 ? "Save" : "Save selected"} - + )} diff --git a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx index 22dc54d2a48..e27ee0a6589 100644 --- a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx @@ -1,4 +1,5 @@ -import { VSCodeBadge, VSCodeButton } from "@vscode/webview-ui-toolkit/react"; +import { VSCodeBadge } from "@vscode/webview-ui-toolkit/react"; +import { VscodeButton } from "@vscode-elements/react-elements"; import { forwardRef, useCallback, @@ -60,7 +61,7 @@ const ViewLink = styled(Link)` white-space: nowrap; `; -const CodiconRow = styled(VSCodeButton)` +const CodiconRow = styled(VscodeButton)` min-height: calc(var(--input-height) * 1px); align-items: center; `; diff --git a/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx b/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx index 02c235d5029..891aefe4255 100644 --- a/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx +++ b/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx @@ -1,10 +1,6 @@ import { useCallback, useEffect, useMemo, useState } from "react"; import type { ToModelEditorMessage } from "../../common/interface-types"; -import { - VSCodeButton, - VSCodeCheckbox, - VSCodeTag, -} from "@vscode/webview-ui-toolkit/react"; +import { VSCodeCheckbox, VSCodeTag } from "@vscode/webview-ui-toolkit/react"; import { styled } from "styled-components"; import type { Method } from "../../model-editor/method"; import type { ModeledMethod } from "../../model-editor/modeled-method"; @@ -22,6 +18,7 @@ import type { AccessPathSuggestionOptions } from "../../model-editor/suggestions import type { ModelEvaluationRunState } from "../../model-editor/shared/model-evaluation-run-state"; import { ModelEvaluation } from "./ModelEvaluation"; import { useMessageFromExtension } from "../common/useMessageFromExtension"; +import { VscodeButton } from "@vscode-elements/react-elements"; const LoadingContainer = styled.div` text-align: center; @@ -334,27 +331,27 @@ export function ModelEditor({ - {selectedSignatures.size === 0 ? "Save all" : "Save selected"} - - + Deselect all - - + + Refresh - + {viewState.showGenerateButton && viewState.mode === Mode.Framework && ( - + Generate - + )} {shouldShowEvaluateButton && ( - Evaluate - + )} {shouldShowStopButton && ( - + Stop evaluation - + )} {shouldShowEvaluationRunLink && ( diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx index ed1b473c66a..eb76113c10b 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx @@ -1,6 +1,6 @@ import { styled } from "styled-components"; -import { VSCodeButton } from "@vscode/webview-ui-toolkit/react"; import { VariantAnalysisStatus } from "../../variant-analysis/shared/variant-analysis"; +import { VscodeButton } from "@vscode-elements/react-elements"; export type VariantAnalysisActionsProps = { variantAnalysisStatus: VariantAnalysisStatus; @@ -24,7 +24,7 @@ const Container = styled.div` gap: 1em; `; -const Button = styled(VSCodeButton)` +const Button = styled(VscodeButton)` white-space: nowrap; `; From 53363883d8e54b70042d270a7636a32333efb19d Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Tue, 1 Apr 2025 15:15:49 +0000 Subject: [PATCH 004/100] Make view tests run --- extensions/ql-vscode/src/view/jest.setup.ts | 11 +++++++++++ extensions/ql-vscode/test/jest-config.ts | 11 +++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/extensions/ql-vscode/src/view/jest.setup.ts b/extensions/ql-vscode/src/view/jest.setup.ts index 23cb3e2f973..d4e03100de6 100644 --- a/extensions/ql-vscode/src/view/jest.setup.ts +++ b/extensions/ql-vscode/src/view/jest.setup.ts @@ -18,6 +18,17 @@ Object.defineProperty(window, "matchMedia", { // Used by Primer React window.CSS.supports = jest.fn().mockResolvedValue(false); +// Functions that are not implemented in jsdom +window.CSSStyleSheet.prototype.replaceSync = jest + .fn() + .mockReturnValue(undefined); +window.ElementInternals.prototype.setFormValue = jest + .fn() + .mockReturnValue(undefined); +window.ElementInternals.prototype.setValidity = jest + .fn() + .mockReturnValue(undefined); + // Store this on the window so we can mock it window.vsCodeApi = { postMessage: jest.fn(), diff --git a/extensions/ql-vscode/test/jest-config.ts b/extensions/ql-vscode/test/jest-config.ts index 5a6b6f64bef..8b5c584d16f 100644 --- a/extensions/ql-vscode/test/jest-config.ts +++ b/extensions/ql-vscode/test/jest-config.ts @@ -1,6 +1,12 @@ // These are all the packages that DO need to be transformed. All other packages will be ignored. // These pacakges all use ES modules, so need to be transformed -const transformScopes = ["@microsoft", "@octokit"]; +const transformScopes = [ + "@microsoft", + "@octokit", + "@vscode-elements", + "@lit", + "@lit-labs", +]; const transformPackages = [ "@vscode/webview-ui-toolkit", "before-after-hook", @@ -11,13 +17,14 @@ const transformPackages = [ "fetch-blob", "formdata-polyfill", "internmap", + "lit", "nanoid", "p-queue", "p-timeout", "robust-predicates", "universal-user-agent", ]; -const transformWildcards = ["d3-(.*)"]; +const transformWildcards = ["d3-(.*)", "lit-(.*)"]; const transformPatterns = [ ...transformScopes.map((scope) => `${scope}/.+`), ...transformPackages, From 73c38ae386e76326d17ac65dcccd17d6f20cd226 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 2 Apr 2025 08:53:36 +0000 Subject: [PATCH 005/100] Fix tests --- .../MultipleModeledMethodsPanel.spec.tsx | 154 ++++++------------ .../model-editor/__tests__/MethodRow.spec.tsx | 26 +-- .../__tests__/ModelEvaluation.spec.tsx | 46 +++--- .../__tests__/VariantAnalysis.spec.tsx | 12 +- .../__tests__/VariantAnalysisActions.spec.tsx | 2 +- 5 files changed, 93 insertions(+), 147 deletions(-) diff --git a/extensions/ql-vscode/src/view/method-modeling/__tests__/MultipleModeledMethodsPanel.spec.tsx b/extensions/ql-vscode/src/view/method-modeling/__tests__/MultipleModeledMethodsPanel.spec.tsx index 9c0e0b464da..27372287bfc 100644 --- a/extensions/ql-vscode/src/view/method-modeling/__tests__/MultipleModeledMethodsPanel.spec.tsx +++ b/extensions/ql-vscode/src/view/method-modeling/__tests__/MultipleModeledMethodsPanel.spec.tsx @@ -52,32 +52,26 @@ describe(MultipleModeledMethodsPanel.name, () => { ).toHaveValue("none"); }); - it("disables all pagination", () => { + it("disables all pagination", async () => { render(); - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeDisabled(); - expect( - screen.getByLabelText("Next modeling").getElementsByTagName("input")[0], - ).toBeDisabled(); + const prevButton = await screen.findByLabelText("Previous modeling"); + const nextButton = await screen.findByLabelText("Next modeling"); + + expect(prevButton).toBeDisabled(); + expect(nextButton).toBeDisabled(); expect(screen.queryByText("0/0")).not.toBeInTheDocument(); expect(screen.queryByText("1/0")).not.toBeInTheDocument(); }); - it("cannot add or delete modeling", () => { + it("cannot add or delete modeling", async () => { render(); - expect( - screen - .getByLabelText("Delete modeling") - .getElementsByTagName("input")[0], - ).toBeDisabled(); - expect( - screen.getByLabelText("Add modeling").getElementsByTagName("input")[0], - ).toBeDisabled(); + const deleteButton = await screen.findByLabelText("Delete modeling"); + const addButton = await screen.findByLabelText("Add modeling"); + + expect(deleteButton).toBeDisabled(); + expect(addButton).toBeDisabled(); }); }); @@ -104,28 +98,22 @@ describe(MultipleModeledMethodsPanel.name, () => { ).toHaveValue("sink"); }); - it("disables all pagination", () => { + it("disables all pagination", async () => { render(); - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeDisabled(); - expect( - screen.getByLabelText("Next modeling").getElementsByTagName("input")[0], - ).toBeDisabled(); + const prevButton = await screen.findByLabelText("Previous modeling"); + const nextButton = await screen.findByLabelText("Next modeling"); + + expect(prevButton).toBeDisabled(); + expect(nextButton).toBeDisabled(); expect(screen.queryByText("1/1")).not.toBeInTheDocument(); }); - it("cannot delete modeling", () => { + it("cannot delete modeling", async () => { render(); - expect( - screen - .getByLabelText("Delete modeling") - .getElementsByTagName("input")[0], - ).toBeDisabled(); + const deleteButton = await screen.findByLabelText("Delete modeling"); + expect(deleteButton).toBeDisabled(); }); it("can add modeling", async () => { @@ -199,37 +187,26 @@ describe(MultipleModeledMethodsPanel.name, () => { it("disables the correct pagination", async () => { render(); - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeDisabled(); - expect( - screen.getByLabelText("Next modeling").getElementsByTagName("input")[0], - ).toBeEnabled(); + const prevButton = await screen.findByLabelText("Previous modeling"); + const nextButton = await screen.findByLabelText("Next modeling"); + + expect(prevButton).toBeDisabled(); + expect(nextButton).toBeEnabled(); }); it("can use the pagination", async () => { render(); - await userEvent.click(screen.getByLabelText("Next modeling")); + const prevButton = await screen.findByLabelText("Previous modeling"); + const nextButton = await screen.findByLabelText("Next modeling"); + await userEvent.click(nextButton); await waitFor(() => { - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeEnabled(); + expect(prevButton).toBeEnabled(); }); - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeEnabled(); - expect( - screen.getByLabelText("Next modeling").getElementsByTagName("input")[0], - ).toBeDisabled(); + expect(prevButton).toBeEnabled(); + expect(nextButton).toBeDisabled(); expect(screen.getByText("2/2")).toBeInTheDocument(); expect( @@ -445,34 +422,20 @@ describe(MultipleModeledMethodsPanel.name, () => { it("can use the pagination", async () => { render(); - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeDisabled(); - expect( - screen.getByLabelText("Next modeling").getElementsByTagName("input")[0], - ).toBeEnabled(); + const prevButton = await screen.findByLabelText("Previous modeling"); + const nextButton = await screen.findByLabelText("Next modeling"); + expect(prevButton).toBeDisabled(); + expect(nextButton).toBeEnabled(); expect(screen.getByText("1/3")).toBeInTheDocument(); - await userEvent.click(screen.getByLabelText("Next modeling")); + await userEvent.click(nextButton); await waitFor(() => { - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeEnabled(); + expect(prevButton).toBeEnabled(); }); - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeEnabled(); - expect( - screen.getByLabelText("Next modeling").getElementsByTagName("input")[0], - ).toBeEnabled(); + expect(prevButton).toBeEnabled(); + expect(nextButton).toBeEnabled(); expect(screen.getByText("2/3")).toBeInTheDocument(); expect( @@ -481,16 +444,10 @@ describe(MultipleModeledMethodsPanel.name, () => { }), ).toHaveValue("source"); - await userEvent.click(screen.getByLabelText("Next modeling")); + await userEvent.click(nextButton); - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeEnabled(); - expect( - screen.getByLabelText("Next modeling").getElementsByTagName("input")[0], - ).toBeDisabled(); + expect(prevButton).toBeEnabled(); + expect(nextButton).toBeDisabled(); expect(screen.getByText("3/3")).toBeInTheDocument(); expect( @@ -499,24 +456,14 @@ describe(MultipleModeledMethodsPanel.name, () => { }), ).toHaveValue("local"); - await userEvent.click(screen.getByLabelText("Previous modeling")); + await userEvent.click(prevButton); await waitFor(() => { - expect( - screen - .getByLabelText("Next modeling") - .getElementsByTagName("input")[0], - ).toBeEnabled(); + expect(nextButton).toBeEnabled(); }); - expect( - screen - .getByLabelText("Previous modeling") - .getElementsByTagName("input")[0], - ).toBeEnabled(); - expect( - screen.getByLabelText("Next modeling").getElementsByTagName("input")[0], - ).toBeEnabled(); + expect(prevButton).toBeEnabled(); + expect(nextButton).toBeEnabled(); expect(screen.getByText("2/3")).toBeInTheDocument(); expect( @@ -574,12 +521,11 @@ describe(MultipleModeledMethodsPanel.name, () => { const render = createRender(modeledMethods); - it("can add modeling", () => { + it("can add modeling", async () => { render(); - expect( - screen.getByLabelText("Add modeling").getElementsByTagName("input")[0], - ).toBeEnabled(); + const addButton = await screen.findByLabelText("Add modeling"); + expect(addButton).toBeEnabled(); }); it("can delete first modeling", async () => { diff --git a/extensions/ql-vscode/src/view/model-editor/__tests__/MethodRow.spec.tsx b/extensions/ql-vscode/src/view/model-editor/__tests__/MethodRow.spec.tsx index 3fac0dc0f99..6ce364b4393 100644 --- a/extensions/ql-vscode/src/view/model-editor/__tests__/MethodRow.spec.tsx +++ b/extensions/ql-vscode/src/view/model-editor/__tests__/MethodRow.spec.tsx @@ -243,9 +243,9 @@ describe(MethodRow.name, () => { modeledMethods: [], }); - const addButton = screen.queryByLabelText("Add new model"); + const addButton = await screen.findByLabelText("Add new model"); expect(addButton).toBeInTheDocument(); - expect(addButton?.getElementsByTagName("input")[0]).toBeDisabled(); + expect(addButton).toBeDisabled(); expect(screen.queryByLabelText("Remove model")).not.toBeInTheDocument(); }); @@ -255,9 +255,9 @@ describe(MethodRow.name, () => { modeledMethods: [{ ...modeledMethod, type: "none" }], }); - const addButton = screen.queryByLabelText("Add new model"); + const addButton = await screen.findByLabelText("Add new model"); expect(addButton).toBeInTheDocument(); - expect(addButton?.getElementsByTagName("input")[0]).toBeDisabled(); + expect(addButton).toBeDisabled(); expect(screen.queryByLabelText("Remove model")).not.toBeInTheDocument(); }); @@ -267,9 +267,9 @@ describe(MethodRow.name, () => { modeledMethods: [modeledMethod], }); - const addButton = screen.queryByLabelText("Add new model"); + const addButton = await screen.findByLabelText("Add new model"); expect(addButton).toBeInTheDocument(); - expect(addButton?.getElementsByTagName("input")[0]).toBeEnabled(); + expect(addButton).toBeEnabled(); expect(screen.queryByLabelText("Remove model")).not.toBeInTheDocument(); }); @@ -282,16 +282,16 @@ describe(MethodRow.name, () => { ], }); - const addButton = screen.queryByLabelText("Add new model"); + const addButton = await screen.findByLabelText("Add new model"); expect(addButton).toBeInTheDocument(); - expect(addButton?.getElementsByTagName("input")[0]).toBeEnabled(); + expect(addButton).toBeEnabled(); - const removeButton = screen.queryByLabelText("Remove model"); + const removeButton = await screen.findByLabelText("Remove model"); expect(removeButton).toBeInTheDocument(); - expect(removeButton?.getElementsByTagName("input")[0]).toBeEnabled(); + expect(removeButton).toBeEnabled(); }); - it("shows add model button on first row and remove model button on all other rows", async () => { + it("shows add model button on first row and remove model button on all other rows", () => { render({ modeledMethods: [ { ...modeledMethod, type: "source" }, @@ -303,12 +303,12 @@ describe(MethodRow.name, () => { const addButtons = screen.queryAllByLabelText("Add new model"); expect(addButtons.length).toBe(1); - expect(addButtons[0]?.getElementsByTagName("input")[0]).toBeEnabled(); + expect(addButtons[0]).toBeEnabled(); const removeButtons = screen.queryAllByLabelText("Remove model"); expect(removeButtons.length).toBe(3); for (const removeButton of removeButtons) { - expect(removeButton?.getElementsByTagName("input")[0]).toBeEnabled(); + expect(removeButton).toBeEnabled(); } }); diff --git a/extensions/ql-vscode/src/view/model-editor/__tests__/ModelEvaluation.spec.tsx b/extensions/ql-vscode/src/view/model-editor/__tests__/ModelEvaluation.spec.tsx index 24897bfa098..150ace05b53 100644 --- a/extensions/ql-vscode/src/view/model-editor/__tests__/ModelEvaluation.spec.tsx +++ b/extensions/ql-vscode/src/view/model-editor/__tests__/ModelEvaluation.spec.tsx @@ -1,4 +1,4 @@ -import { render as reactRender, screen } from "@testing-library/react"; +import { render as reactRender, screen, waitFor } from "@testing-library/react"; import type { Props } from "../ModelEvaluation"; import { ModelEvaluation } from "../ModelEvaluation"; import { createMockModelEditorViewState } from "../../../../test/factories/model-editor/view-state"; @@ -39,47 +39,51 @@ describe(ModelEvaluation.name, () => { }); describe("when showEvaluationUi is true", () => { - it("renders evaluation UI with 'Evaluate' button enabled", () => { + it("renders evaluation UI with 'Evaluate' button enabled", async () => { render(); - const evaluateButton = screen.queryByText("Evaluate"); + const evaluateButton = await screen.findByText("Evaluate"); expect(evaluateButton).toBeInTheDocument(); - expect(evaluateButton?.getElementsByTagName("input")[0]).toBeEnabled(); + expect(evaluateButton).toBeEnabled(); expect(screen.queryByText("Stop evaluation")).not.toBeInTheDocument(); expect(screen.queryByText("Evaluation run")).not.toBeInTheDocument(); }); - it("disables 'Evaluate' button when there are no custom models", () => { + it("disables 'Evaluate' button when there are no custom models", async () => { render({ modeledMethods: {}, }); - const evaluateButton = screen.queryByText("Evaluate"); + const evaluateButton = await screen.findByText("Evaluate"); expect(evaluateButton).toBeInTheDocument(); - expect(evaluateButton?.getElementsByTagName("input")[0]).toBeDisabled(); + await waitFor(() => { + expect(evaluateButton).toBeDisabled(); + }); expect(screen.queryByText("Stop evaluation")).not.toBeInTheDocument(); expect(screen.queryByText("Evaluation run")).not.toBeInTheDocument(); }); - it("disables 'Evaluate' button when there are unsaved changes", () => { + it("disables 'Evaluate' button when there are unsaved changes", async () => { render({ modifiedSignatures: new Set([method.signature]), }); - const evaluateButton = screen.queryByText("Evaluate"); + const evaluateButton = await screen.findByText("Evaluate"); expect(evaluateButton).toBeInTheDocument(); - expect(evaluateButton?.getElementsByTagName("input")[0]).toBeDisabled(); + await waitFor(() => { + expect(evaluateButton).toBeDisabled(); + }); expect(screen.queryByText("Stop evaluation")).not.toBeInTheDocument(); expect(screen.queryByText("Evaluation run")).not.toBeInTheDocument(); }); - it("renders 'Evaluate' button and 'Evaluation run' link when there is a completed evaluation", () => { + it("renders 'Evaluate' button and 'Evaluation run' link when there is a completed evaluation", async () => { render({ evaluationRun: { isPreparing: false, @@ -89,16 +93,16 @@ describe(ModelEvaluation.name, () => { }, }); - const evaluateButton = screen.queryByText("Evaluate"); + const evaluateButton = await screen.findByText("Evaluate"); expect(evaluateButton).toBeInTheDocument(); - expect(evaluateButton?.getElementsByTagName("input")[0]).toBeEnabled(); + expect(evaluateButton).toBeEnabled(); expect(screen.queryByText("Evaluation run")).toBeInTheDocument(); expect(screen.queryByText("Stop evaluation")).not.toBeInTheDocument(); }); - it("renders 'Stop evaluation' button when there is an in progress evaluation, but no variant analysis yet", () => { + it("renders 'Stop evaluation' button when there is an in progress evaluation, but no variant analysis yet", async () => { render({ evaluationRun: { isPreparing: true, @@ -106,18 +110,16 @@ describe(ModelEvaluation.name, () => { }, }); - const stopEvaluationButton = screen.queryByText("Stop evaluation"); + const stopEvaluationButton = await screen.findByText("Stop evaluation"); expect(stopEvaluationButton).toBeInTheDocument(); - expect( - stopEvaluationButton?.getElementsByTagName("input")[0], - ).toBeEnabled(); + expect(stopEvaluationButton).toBeEnabled(); expect(screen.queryByText("Evaluation run")).not.toBeInTheDocument(); expect(screen.queryByText("Evaluate")).not.toBeInTheDocument(); }); - it("renders 'Stop evaluation' button and 'Evaluation run' link when there is an in progress evaluation with variant analysis", () => { + it("renders 'Stop evaluation' button and 'Evaluation run' link when there is an in progress evaluation with variant analysis", async () => { render({ evaluationRun: { isPreparing: false, @@ -127,11 +129,9 @@ describe(ModelEvaluation.name, () => { }, }); - const stopEvaluationButton = screen.queryByText("Stop evaluation"); + const stopEvaluationButton = await screen.findByText("Stop evaluation"); expect(stopEvaluationButton).toBeInTheDocument(); - expect( - stopEvaluationButton?.getElementsByTagName("input")[0], - ).toBeEnabled(); + expect(stopEvaluationButton).toBeEnabled(); expect(screen.queryByText("Evaluation run")).toBeInTheDocument(); diff --git a/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysis.spec.tsx b/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysis.spec.tsx index b8a7bfcd539..3279ed446d2 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysis.spec.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysis.spec.tsx @@ -1,4 +1,4 @@ -import { render as reactRender, screen, waitFor } from "@testing-library/react"; +import { render as reactRender, screen } from "@testing-library/react"; import { VariantAnalysisFailureReason, VariantAnalysisStatus, @@ -57,9 +57,6 @@ describe(VariantAnalysis.name, () => { const variantAnalysis = createMockVariantAnalysis({}); render({ variantAnalysis }); - await waitFor(() => screen.getByDisplayValue("All")); - await waitFor(() => screen.getByDisplayValue("Number of results")); - await postMessage({ t: "setFilterSortState", filterSortState: { @@ -69,8 +66,11 @@ describe(VariantAnalysis.name, () => { }, }); - expect(screen.getByDisplayValue("With results")).toBeInTheDocument(); - expect(screen.getByDisplayValue("Alphabetically")).toBeInTheDocument(); + const withResults = await screen.findByText("With results"); + expect(withResults).toBeInTheDocument(); + + const alphabetically = await screen.findByText("Alphabetically"); + expect(alphabetically).toBeInTheDocument(); expect(screen.queryByDisplayValue("All")).not.toBeInTheDocument(); expect( diff --git a/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisActions.spec.tsx b/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisActions.spec.tsx index de19458646e..50502ee184e 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisActions.spec.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisActions.spec.tsx @@ -52,7 +52,7 @@ describe(VariantAnalysisActions.name, () => { const button = screen.getByText("Stopping query"); expect(button).toBeInTheDocument(); - expect(button.getElementsByTagName("input")[0]).toBeDisabled(); + expect(button).toBeDisabled(); }); it("does not render a stop query button when canceling", async () => { From 5966cea62344118b05175a4f719250f80f9b0d89 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 2 Apr 2025 13:23:07 +0000 Subject: [PATCH 006/100] Replace VSCodeTextField for VscodeTextfield --- extensions/ql-vscode/src/view/common/SearchBox.tsx | 4 ++-- .../ql-vscode/src/view/common/SuggestBox/SuggestBox.tsx | 6 +++--- .../src/view/compare-performance/RenamingInput.tsx | 5 ++--- .../ql-vscode/src/view/model-editor/ModelTypeTextbox.tsx | 4 ++-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/extensions/ql-vscode/src/view/common/SearchBox.tsx b/extensions/ql-vscode/src/view/common/SearchBox.tsx index 464d303fa7e..a158f40c4b1 100644 --- a/extensions/ql-vscode/src/view/common/SearchBox.tsx +++ b/extensions/ql-vscode/src/view/common/SearchBox.tsx @@ -1,9 +1,9 @@ import { useCallback } from "react"; import { styled } from "styled-components"; -import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"; +import { VscodeTextfield } from "@vscode-elements/react-elements"; import { Codicon } from "./icon"; -const TextField = styled(VSCodeTextField)` +const TextField = styled(VscodeTextfield)` width: 100%; `; diff --git a/extensions/ql-vscode/src/view/common/SuggestBox/SuggestBox.tsx b/extensions/ql-vscode/src/view/common/SuggestBox/SuggestBox.tsx index 32240fac67e..7e190a6d05a 100644 --- a/extensions/ql-vscode/src/view/common/SuggestBox/SuggestBox.tsx +++ b/extensions/ql-vscode/src/view/common/SuggestBox/SuggestBox.tsx @@ -14,15 +14,15 @@ import { useRole, } from "@floating-ui/react"; import { css, styled } from "styled-components"; -import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"; import type { Option } from "./options"; import { findMatchingOptions } from "./options"; import { SuggestBoxItem } from "./SuggestBoxItem"; import { LabelText } from "./LabelText"; import type { Diagnostic } from "./diagnostics"; import { useOpenKey } from "./useOpenKey"; +import { VscodeTextfield } from "@vscode-elements/react-elements"; -const Input = styled(VSCodeTextField)<{ $error: boolean }>` +const Input = styled(VscodeTextfield)<{ $error: boolean }>` width: 100%; font-family: var(--vscode-editor-font-family); @@ -96,7 +96,7 @@ export type SuggestBoxProps< /** * Can be used to render a different component for the input. This is used - * in testing to use default HTML components rather than the VSCodeTextField + * in testing to use default HTML components rather than the VscodeTextfield * for easier testing. * @param props The props returned by `getReferenceProps` of {@link useInteractions} */ diff --git a/extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx b/extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx index dfad2a2e13d..c938cc6d1a4 100644 --- a/extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx +++ b/extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx @@ -1,7 +1,6 @@ import type { ChangeEvent } from "react"; import { styled } from "styled-components"; -import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"; -import { VscodeButton } from "@vscode-elements/react-elements"; +import { VscodeButton, VscodeTextfield } from "@vscode-elements/react-elements"; import { Codicon } from "../common"; export class Renaming { @@ -23,7 +22,7 @@ function tryCompilePattern(pattern: string): RegExp | undefined { } } -const Input = styled(VSCodeTextField)` +const Input = styled(VscodeTextfield)` width: 20em; `; diff --git a/extensions/ql-vscode/src/view/model-editor/ModelTypeTextbox.tsx b/extensions/ql-vscode/src/view/model-editor/ModelTypeTextbox.tsx index d52ab1306bf..69f9a0829b9 100644 --- a/extensions/ql-vscode/src/view/model-editor/ModelTypeTextbox.tsx +++ b/extensions/ql-vscode/src/view/model-editor/ModelTypeTextbox.tsx @@ -4,8 +4,8 @@ import type { ModeledMethod, TypeModeledMethod, } from "../../model-editor/modeled-method"; -import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"; import { useDebounceCallback } from "../common/useDebounceCallback"; +import { VscodeTextfield } from "@vscode-elements/react-elements"; type Props = { modeledMethod: TypeModeledMethod; @@ -53,7 +53,7 @@ export const ModelTypeTextbox = ({ ); return ( - Date: Wed, 2 Apr 2025 13:44:16 +0000 Subject: [PATCH 007/100] Replace VSCodeDropdown and VSCodeOption --- .../view/common/CodePaths/CodeFlowsDropdown.tsx | 13 ++++++++----- .../src/view/model-alerts/ModelAlertsSort.tsx | 13 ++++++++----- .../view/variant-analysis/RepositoriesFilter.tsx | 11 +++++++---- .../variant-analysis/RepositoriesResultFormat.tsx | 15 +++++++++------ .../view/variant-analysis/RepositoriesSort.tsx | 15 +++++++++------ 5 files changed, 41 insertions(+), 26 deletions(-) diff --git a/extensions/ql-vscode/src/view/common/CodePaths/CodeFlowsDropdown.tsx b/extensions/ql-vscode/src/view/common/CodePaths/CodeFlowsDropdown.tsx index 277013084f1..cc232060f0a 100644 --- a/extensions/ql-vscode/src/view/common/CodePaths/CodeFlowsDropdown.tsx +++ b/extensions/ql-vscode/src/view/common/CodePaths/CodeFlowsDropdown.tsx @@ -1,6 +1,9 @@ import type { ChangeEvent, SetStateAction } from "react"; import { useCallback } from "react"; -import { VSCodeDropdown, VSCodeOption } from "@vscode/webview-ui-toolkit/react"; +import { + VscodeOption, + VscodeSingleSelect, +} from "@vscode-elements/react-elements"; import type { CodeFlow } from "../../../variant-analysis/shared/analysis-result"; @@ -35,12 +38,12 @@ export const CodeFlowsDropdown = ({ .toString(); return ( - + {codeFlows.map((codeFlow, index) => ( - + {getCodeFlowName(codeFlow)} - + ))} - + ); }; diff --git a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx index 043355a5782..dbc80ea2ea7 100644 --- a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx +++ b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx @@ -1,10 +1,13 @@ import { useCallback } from "react"; import { styled } from "styled-components"; -import { VSCodeDropdown, VSCodeOption } from "@vscode/webview-ui-toolkit/react"; +import { + VscodeOption, + VscodeSingleSelect, +} from "@vscode-elements/react-elements"; import { SortKey } from "../../model-editor/shared/model-alerts-filter-sort"; import { Codicon } from "../common"; -const Dropdown = styled(VSCodeDropdown)` +const Dropdown = styled(VscodeSingleSelect)` width: 100%; `; @@ -28,10 +31,10 @@ export const ModelAlertsSort = ({ value, onChange, className }: Props) => { return ( - Alphabetically - + Alphabetically + Number of results - + ); }; diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx index 56596b2ecbf..784d045d861 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx @@ -1,10 +1,13 @@ import { useCallback } from "react"; import { styled } from "styled-components"; -import { VSCodeDropdown, VSCodeOption } from "@vscode/webview-ui-toolkit/react"; +import { + VscodeOption, + VscodeSingleSelect, +} from "@vscode-elements/react-elements"; import { Codicon } from "../common"; import { FilterKey } from "../../variant-analysis/shared/variant-analysis-filter-sort"; -const Dropdown = styled(VSCodeDropdown)` +const Dropdown = styled(VscodeSingleSelect)` width: 100%; `; @@ -28,8 +31,8 @@ export const RepositoriesFilter = ({ value, onChange, className }: Props) => { return ( - All - With results + All + With results ); }; diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx index 11ac814cc18..d2e19e1d090 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx @@ -1,10 +1,13 @@ import { useCallback } from "react"; import { styled } from "styled-components"; -import { VSCodeDropdown, VSCodeOption } from "@vscode/webview-ui-toolkit/react"; +import { + VscodeOption, + VscodeSingleSelect, +} from "@vscode-elements/react-elements"; import { Codicon } from "../common"; import { ResultFormat } from "../../variant-analysis/shared/variant-analysis-result-format"; -const Dropdown = styled(VSCodeDropdown)` +const Dropdown = styled(VscodeSingleSelect)` width: 100%; `; @@ -32,12 +35,12 @@ export const RepositoriesResultFormat = ({ return ( - + {ResultFormat.Alerts} - - + + {ResultFormat.RawResults} - + ); }; diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx index d4383a3e1ea..874bca0de2c 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx @@ -1,10 +1,13 @@ import { useCallback } from "react"; import { styled } from "styled-components"; -import { VSCodeDropdown, VSCodeOption } from "@vscode/webview-ui-toolkit/react"; +import { + VscodeOption, + VscodeSingleSelect, +} from "@vscode-elements/react-elements"; import { SortKey } from "../../variant-analysis/shared/variant-analysis-filter-sort"; import { Codicon } from "../common"; -const Dropdown = styled(VSCodeDropdown)` +const Dropdown = styled(VscodeSingleSelect)` width: 100%; `; @@ -28,11 +31,11 @@ export const RepositoriesSort = ({ value, onChange, className }: Props) => { return ( - Alphabetically - + Alphabetically + Number of results - - Popularity + + Popularity ); }; From 24a3530189077ad21039dc14eb6c2148c38ce25b Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 2 Apr 2025 14:02:03 +0000 Subject: [PATCH 008/100] Fix MethodRow stories --- .../src/stories/model-editor/MethodRow.stories.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/extensions/ql-vscode/src/stories/model-editor/MethodRow.stories.tsx b/extensions/ql-vscode/src/stories/model-editor/MethodRow.stories.tsx index 6b10353d0a9..f7bf0748b20 100644 --- a/extensions/ql-vscode/src/stories/model-editor/MethodRow.stories.tsx +++ b/extensions/ql-vscode/src/stories/model-editor/MethodRow.stories.tsx @@ -112,6 +112,7 @@ Source.args = { modeledMethods: [{ ...modeledMethod, type: "source" }], methodCanBeModeled: true, viewState, + onChange: () => {}, }; export const Sink = Template.bind({}); @@ -120,6 +121,7 @@ Sink.args = { modeledMethods: [{ ...modeledMethod, type: "sink" }], methodCanBeModeled: true, viewState, + onChange: () => {}, }; export const Summary = Template.bind({}); @@ -136,6 +138,7 @@ Neutral.args = { modeledMethods: [{ ...modeledMethod, type: "neutral" }], methodCanBeModeled: true, viewState, + onChange: () => {}, }; export const AlreadyModeled = Template.bind({}); @@ -155,6 +158,7 @@ MultipleModelings.args = { ], methodCanBeModeled: true, viewState, + onChange: () => {}, }; export const ValidationError = Template.bind({}); @@ -166,6 +170,7 @@ ValidationError.args = { ], methodCanBeModeled: true, viewState, + onChange: () => {}, }; export const MultipleValidationErrors = Template.bind({}); @@ -180,4 +185,5 @@ MultipleValidationErrors.args = { ], methodCanBeModeled: true, viewState, + onChange: () => {}, }; From 8e7a93bb2d31b934c77509a7c39bbaf650278ebb Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 2 Apr 2025 15:01:23 +0000 Subject: [PATCH 009/100] Replace VSCodeBadge --- .../src/view/model-alerts/ModelAlertsResults.tsx | 4 ++-- .../ql-vscode/src/view/model-editor/MethodRow.tsx | 5 ++--- .../src/view/model-editor/ModelAlertsIndicator.tsx | 4 ++-- .../src/view/results/AlertTableResultRow.tsx | 4 ++-- .../src/view/variant-analysis/RepoRow.tsx | 7 ++++--- .../VariantAnalysisOutcomePanels.tsx | 14 +++++++------- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx index 8b27896d333..98be02b3e44 100644 --- a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx +++ b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx @@ -1,7 +1,7 @@ import { styled } from "styled-components"; import type { ModelAlerts } from "../../model-editor/model-alerts/model-alerts"; import { Codicon } from "../common"; -import { VSCodeBadge } from "@vscode/webview-ui-toolkit/react"; +import { VscodeBadge } from "@vscode-elements/react-elements"; import { useCallback, useEffect, useRef, useState } from "react"; import { formatDecimal } from "../../common/number"; import AnalysisAlertResult from "../variant-analysis/AnalysisAlertResult"; @@ -103,7 +103,7 @@ export const ModelAlertsResults = ({ {!isExpanded && ( )} - {formatDecimal(modelAlerts.alerts.length)} + {formatDecimal(modelAlerts.alerts.length)} {modelAlerts.model.type} {listUnordered} - {shortestPath} + {shortestPath} {msg} diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx index fc381fe016f..f957f6ac358 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx @@ -1,7 +1,8 @@ import type { ChangeEvent } from "react"; import { useCallback, useEffect, useState } from "react"; import { styled } from "styled-components"; -import { VSCodeBadge, VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react"; +import { VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react"; +import { VscodeBadge } from "@vscode-elements/react-elements"; import type { VariantAnalysisScannedRepositoryState } from "../../variant-analysis/shared/variant-analysis"; import { isCompletedAnalysisRepoStatus, @@ -269,9 +270,9 @@ export const RepoRow = ({ )} {resultsLoading && } - + {resultCount === undefined ? "-" : formatDecimal(resultCount)} - + {repository.fullName} diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx index 469c7aa6d29..fd25b40ea54 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx @@ -2,11 +2,11 @@ import type { Dispatch, SetStateAction } from "react"; import { useState } from "react"; import { styled } from "styled-components"; import { - VSCodeBadge, VSCodePanels, VSCodePanelTab, VSCodePanelView, } from "@vscode/webview-ui-toolkit/react"; +import { VscodeBadge } from "@vscode-elements/react-elements"; import { formatDecimal } from "../../common/number"; import type { VariantAnalysis, @@ -158,25 +158,25 @@ export const VariantAnalysisOutcomePanels = ({ {scannedReposCount > 0 && ( Analyzed - + {formatDecimal(variantAnalysis.scannedRepos?.length ?? 0)} - + )} {notFoundRepos?.repositoryCount && ( No access - + {formatDecimal(notFoundRepos.repositoryCount)} - + )} {noCodeqlDbRepos?.repositoryCount && ( No database - + {formatDecimal(noCodeqlDbRepos.repositoryCount)} - + )} {scannedReposCount > 0 && ( From 1db6add44f21864a4890f940dc48321085001f90 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 2 Apr 2025 15:02:19 +0000 Subject: [PATCH 010/100] Fix AlertTable stories --- .../ql-vscode/src/stories/results/AlertTable.stories.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extensions/ql-vscode/src/stories/results/AlertTable.stories.tsx b/extensions/ql-vscode/src/stories/results/AlertTable.stories.tsx index bfb179a1fed..d2cc19f3916 100644 --- a/extensions/ql-vscode/src/stories/results/AlertTable.stories.tsx +++ b/extensions/ql-vscode/src/stories/results/AlertTable.stories.tsx @@ -431,4 +431,7 @@ WithCodeFlows.args = { showRawResults={() => action("show-raw-results")} /> ), + userSettings: { + shouldShowProvenance: true, + }, }; From f466998d1abc0563787d494170b6dc9c4f88f82e Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 2 Apr 2025 15:30:35 +0000 Subject: [PATCH 011/100] Replace VSCodeDivider and fix LibraryRow stories --- .../src/stories/model-editor/LibraryRow.stories.tsx | 1 + extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/src/stories/model-editor/LibraryRow.stories.tsx b/extensions/ql-vscode/src/stories/model-editor/LibraryRow.stories.tsx index 423a948cd0e..16cb303b786 100644 --- a/extensions/ql-vscode/src/stories/model-editor/LibraryRow.stories.tsx +++ b/extensions/ql-vscode/src/stories/model-editor/LibraryRow.stories.tsx @@ -220,6 +220,7 @@ LibraryRow.args = { ], }, modifiedSignatures: new Set(["org.sql2o.Sql2o#Sql2o(String)"]), + selectedSignatures: new Set(["org.sql2o.Sql2o#Sql2o(String)"]), viewState: createMockModelEditorViewState({ showGenerateButton: true, }), diff --git a/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx b/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx index 55229e448b8..ce2d0bcb7cc 100644 --- a/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx @@ -7,11 +7,11 @@ import { calculateModeledPercentage } from "../../model-editor/shared/modeled-pe import { percentFormatter } from "./formatters"; import { Codicon } from "../common"; import { Mode } from "../../model-editor/shared/mode"; -import { VSCodeDivider, VSCodeTag } from "@vscode/webview-ui-toolkit/react"; +import { VSCodeTag } from "@vscode/webview-ui-toolkit/react"; +import { VscodeButton, VscodeDivider } from "@vscode-elements/react-elements"; import type { ModelEditorViewState } from "../../model-editor/shared/view-state"; import type { AccessPathSuggestionOptions } from "../../model-editor/suggestions"; import type { ModelEvaluationRunState } from "../../model-editor/shared/model-evaluation-run-state"; -import { VscodeButton } from "@vscode-elements/react-elements"; const LibraryContainer = styled.div` background-color: var(--vscode-peekViewResult-background); @@ -34,7 +34,7 @@ const TitleContainer = styled.button` cursor: pointer; `; -const SectionDivider = styled(VSCodeDivider)` +const SectionDivider = styled(VscodeDivider)` padding-top: 0.3rem; padding-bottom: 0.3rem; `; From 82427ed1a272c396a8c8c22330b494c40c28a123 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 2 Apr 2025 15:34:07 +0000 Subject: [PATCH 012/100] Replace VSCodeCheckbox --- .../ql-vscode/src/view/model-editor/ModelEditor.tsx | 8 ++++---- .../ql-vscode/src/view/variant-analysis/RepoRow.tsx | 5 ++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx b/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx index 891aefe4255..da9a1e50439 100644 --- a/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx +++ b/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx @@ -1,6 +1,7 @@ import { useCallback, useEffect, useMemo, useState } from "react"; import type { ToModelEditorMessage } from "../../common/interface-types"; -import { VSCodeCheckbox, VSCodeTag } from "@vscode/webview-ui-toolkit/react"; +import { VSCodeTag } from "@vscode/webview-ui-toolkit/react"; +import { VscodeButton, VscodeCheckbox } from "@vscode-elements/react-elements"; import { styled } from "styled-components"; import type { Method } from "../../model-editor/method"; import type { ModeledMethod } from "../../model-editor/modeled-method"; @@ -18,7 +19,6 @@ import type { AccessPathSuggestionOptions } from "../../model-editor/suggestions import type { ModelEvaluationRunState } from "../../model-editor/shared/model-evaluation-run-state"; import { ModelEvaluation } from "./ModelEvaluation"; import { useMessageFromExtension } from "../common/useMessageFromExtension"; -import { VscodeButton } from "@vscode-elements/react-elements"; const LoadingContainer = styled.div` text-align: center; @@ -367,12 +367,12 @@ export function ModelEditor({ - Hide modeled methods - + diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx index f957f6ac358..164aa112c23 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx @@ -1,8 +1,7 @@ import type { ChangeEvent } from "react"; import { useCallback, useEffect, useState } from "react"; import { styled } from "styled-components"; -import { VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react"; -import { VscodeBadge } from "@vscode-elements/react-elements"; +import { VscodeBadge, VscodeCheckbox } from "@vscode-elements/react-elements"; import type { VariantAnalysisScannedRepositoryState } from "../../variant-analysis/shared/variant-analysis"; import { isCompletedAnalysisRepoStatus, @@ -255,7 +254,7 @@ export const RepoRow = ({ disabled={disabled} aria-expanded={isExpanded} > - Date: Wed, 2 Apr 2025 16:06:43 +0000 Subject: [PATCH 013/100] Replace VSCodeProgressRing --- .../src/view/model-editor/ModelEditorProgressRing.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/ql-vscode/src/view/model-editor/ModelEditorProgressRing.tsx b/extensions/ql-vscode/src/view/model-editor/ModelEditorProgressRing.tsx index 3994caddf82..523e8fd32c8 100644 --- a/extensions/ql-vscode/src/view/model-editor/ModelEditorProgressRing.tsx +++ b/extensions/ql-vscode/src/view/model-editor/ModelEditorProgressRing.tsx @@ -1,7 +1,7 @@ -import { VSCodeProgressRing } from "@vscode/webview-ui-toolkit/react"; +import { VscodeProgressRing } from "@vscode-elements/react-elements"; import { styled } from "styled-components"; -export const ModelEditorProgressRing = styled(VSCodeProgressRing)` +export const ModelEditorProgressRing = styled(VscodeProgressRing)` width: 16px; height: 16px; margin-right: 5px; From 33d7a586c83be36adfd2912a939f43b54c9261d2 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Thu, 3 Apr 2025 10:04:39 +0000 Subject: [PATCH 014/100] Add new Badge component to apply border-radius by default --- extensions/ql-vscode/src/view/common/Badge.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 extensions/ql-vscode/src/view/common/Badge.tsx diff --git a/extensions/ql-vscode/src/view/common/Badge.tsx b/extensions/ql-vscode/src/view/common/Badge.tsx new file mode 100644 index 00000000000..70568f1b2a6 --- /dev/null +++ b/extensions/ql-vscode/src/view/common/Badge.tsx @@ -0,0 +1,9 @@ +import { VscodeBadge } from "@vscode-elements/react-elements"; + +// This applies the counter variant by default so the border-radius attribute is set +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const Badge = (props: any) => ( + + {props.children} + +); From 4a29babb93d99c934b5870185819b3b6ba4ba96d Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Thu, 3 Apr 2025 10:17:47 +0000 Subject: [PATCH 015/100] Use custom Badge component --- .../ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx | 4 ++-- extensions/ql-vscode/src/view/model-editor/MethodRow.tsx | 5 +++-- .../src/view/model-editor/ModelAlertsIndicator.tsx | 4 ++-- .../ql-vscode/src/view/results/AlertTableResultRow.tsx | 4 ++-- extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx | 7 ++++--- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx index 98be02b3e44..d10757e3748 100644 --- a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx +++ b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsResults.tsx @@ -1,7 +1,6 @@ import { styled } from "styled-components"; import type { ModelAlerts } from "../../model-editor/model-alerts/model-alerts"; import { Codicon } from "../common"; -import { VscodeBadge } from "@vscode-elements/react-elements"; import { useCallback, useEffect, useRef, useState } from "react"; import { formatDecimal } from "../../common/number"; import AnalysisAlertResult from "../variant-analysis/AnalysisAlertResult"; @@ -11,6 +10,7 @@ import { vscode } from "../vscode-api"; import { createModeledMethodKey } from "../../model-editor/modeled-method"; import type { ModeledMethod } from "../../model-editor/modeled-method"; import { Link } from "../common/Link"; +import { Badge } from "../common/Badge"; // This will ensure that these icons have a className which we can use in the TitleContainer const ExpandCollapseCodicon = styled(Codicon)``; @@ -103,7 +103,7 @@ export const ModelAlertsResults = ({ {!isExpanded && ( )} - {formatDecimal(modelAlerts.alerts.length)} + {formatDecimal(modelAlerts.alerts.length)} {modelAlerts.model.type} {listUnordered} - {shortestPath} + {shortestPath} {msg} diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx index 164aa112c23..da0f00f4b41 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx @@ -1,7 +1,7 @@ import type { ChangeEvent } from "react"; import { useCallback, useEffect, useState } from "react"; import { styled } from "styled-components"; -import { VscodeBadge, VscodeCheckbox } from "@vscode-elements/react-elements"; +import { VscodeCheckbox } from "@vscode-elements/react-elements"; import type { VariantAnalysisScannedRepositoryState } from "../../variant-analysis/shared/variant-analysis"; import { isCompletedAnalysisRepoStatus, @@ -27,6 +27,7 @@ import StarCount from "../common/StarCount"; import { useTelemetryOnChange } from "../common/telemetry"; import { DeterminateProgressRing } from "../common/DeterminateProgressRing"; import { ResultFormat } from "../../variant-analysis/shared/variant-analysis-result-format"; +import { Badge } from "../common/Badge"; // This will ensure that these icons have a className which we can use in the TitleContainer const ExpandCollapseCodicon = styled(Codicon)``; @@ -269,9 +270,9 @@ export const RepoRow = ({ )} {resultsLoading && } - + {resultCount === undefined ? "-" : formatDecimal(resultCount)} - + {repository.fullName} From 3b1e9298b4808382af3b6e1ef010732719ba32b0 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Thu, 3 Apr 2025 10:34:50 +0000 Subject: [PATCH 016/100] Replace VSCodePanelTab --- .../VariantAnalysisOutcomePanels.tsx | 71 ++++++++++++------- 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx index fd25b40ea54..33031924f49 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx @@ -2,11 +2,10 @@ import type { Dispatch, SetStateAction } from "react"; import { useState } from "react"; import { styled } from "styled-components"; import { - VSCodePanels, - VSCodePanelTab, - VSCodePanelView, -} from "@vscode/webview-ui-toolkit/react"; -import { VscodeBadge } from "@vscode-elements/react-elements"; + VscodeTabHeader, + VscodeTabPanel, + VscodeTabs, +} from "@vscode-elements/react-elements"; import { formatDecimal } from "../../common/number"; import type { VariantAnalysis, @@ -21,6 +20,7 @@ import type { RepositoriesFilterSortState } from "../../variant-analysis/shared/ import { RepositoriesSearchSortRow } from "./RepositoriesSearchSortRow"; import { FailureReasonAlert } from "./FailureReasonAlert"; import { ResultFormat } from "../../variant-analysis/shared/variant-analysis-result-format"; +import { Badge } from "../common/Badge"; export type VariantAnalysisOutcomePanelProps = { variantAnalysis: VariantAnalysis; @@ -34,8 +34,27 @@ export type VariantAnalysisOutcomePanelProps = { setFilterSortState: Dispatch>; }; -const Tab = styled(VSCodePanelTab)` +const Tabs = styled(VscodeTabs)` + column-gap: 32px; + + > vscode-tab-header { + margin-right: 32px; + } +`; + +const TabHeader = styled(VscodeTabHeader)` text-transform: uppercase; + + > * { + // This copies the styles from VSCodePanelTab + &:last-child { + margin-left: 8px; + } + } +`; + +const TabPanel = styled(VscodeTabPanel)` + padding: 10px 6px; `; const WarningsContainer = styled.div` @@ -154,33 +173,33 @@ export const VariantAnalysisOutcomePanels = ({ onResultFormatChange={setResultFormat} variantAnalysisQueryKind={variantAnalysis.query.kind} /> - + {scannedReposCount > 0 && ( - + Analyzed - + {formatDecimal(variantAnalysis.scannedRepos?.length ?? 0)} - - + + )} {notFoundRepos?.repositoryCount && ( - + No access - + {formatDecimal(notFoundRepos.repositoryCount)} - - + + )} {noCodeqlDbRepos?.repositoryCount && ( - + No database - + {formatDecimal(noCodeqlDbRepos.repositoryCount)} - - + + )} {scannedReposCount > 0 && ( - + - + )} {notFoundRepos?.repositoryCount && ( - + - + )} {noCodeqlDbRepos?.repositoryCount && ( - + - + )} - + ); }; From f655fab8d6a30d74035ca79ec2b990657bffbf9a Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Thu, 3 Apr 2025 10:44:38 +0000 Subject: [PATCH 017/100] Remove vscode/webview-ui-toolkit --- extensions/ql-vscode/package-lock.json | 66 ------------------------ extensions/ql-vscode/package.json | 1 - extensions/ql-vscode/test/jest-config.ts | 1 - 3 files changed, 68 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 316b2df510f..7bbd7eaebd1 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -18,7 +18,6 @@ "@vscode/codicons": "^0.0.36", "@vscode/debugadapter": "^1.59.0", "@vscode/debugprotocol": "^1.68.0", - "@vscode/webview-ui-toolkit": "^1.0.1", "ajv": "^8.11.0", "chokidar": "^3.6.0", "d3": "^7.9.0", @@ -5115,47 +5114,6 @@ "node": ">= 14" } }, - "node_modules/@microsoft/fast-element": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.12.0.tgz", - "integrity": "sha512-gQutuDHPKNxUEcQ4pypZT4Wmrbapus+P9s3bR/SEOLsMbNqNoXigGImITygI5zhb+aA5rzflM6O8YWkmRbGkPA==" - }, - "node_modules/@microsoft/fast-foundation": { - "version": "2.49.4", - "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.49.4.tgz", - "integrity": "sha512-5I2tSPo6bnOfVAIX7XzX+LhilahwvD7h+yzl3jW0t5IYmMX9Lci9VUVyx5f8hHdb1O9a8Y9Atb7Asw7yFO/u+w==", - "dependencies": { - "@microsoft/fast-element": "^1.12.0", - "@microsoft/fast-web-utilities": "^5.4.1", - "tabbable": "^5.2.0", - "tslib": "^1.13.0" - } - }, - "node_modules/@microsoft/fast-foundation/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@microsoft/fast-react-wrapper": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@microsoft/fast-react-wrapper/-/fast-react-wrapper-0.3.22.tgz", - "integrity": "sha512-XhlX4m6znh7XW92oPvlKoG9USUn9JtF9rP1qtUoIbkaDaFtUS+H8o1Jn6/oK/rS44LbBLJXrvRkInmSWlDiGFw==", - "dependencies": { - "@microsoft/fast-element": "^1.12.0", - "@microsoft/fast-foundation": "^2.49.4" - }, - "peerDependencies": { - "react": ">=16.9.0" - } - }, - "node_modules/@microsoft/fast-web-utilities": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.4.1.tgz", - "integrity": "sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg==", - "dependencies": { - "exenv-es6": "^1.1.1" - } - }, "node_modules/@mswjs/interceptors": { "version": "0.37.3", "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.37.3.tgz", @@ -8806,20 +8764,6 @@ "win32" ] }, - "node_modules/@vscode/webview-ui-toolkit": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vscode/webview-ui-toolkit/-/webview-ui-toolkit-1.4.0.tgz", - "integrity": "sha512-modXVHQkZLsxgmd5yoP3ptRC/G8NBDD+ob+ngPiWNQdlrH6H1xR/qgOBD85bfU3BhOB5sZzFWBwwhp9/SfoHww==", - "dependencies": { - "@microsoft/fast-element": "^1.12.0", - "@microsoft/fast-foundation": "^2.49.4", - "@microsoft/fast-react-wrapper": "^0.3.22", - "tslib": "^2.6.2" - }, - "peerDependencies": { - "react": ">=16.9.0" - } - }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -13435,11 +13379,6 @@ "dev": true, "license": "ISC" }, - "node_modules/exenv-es6": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.1.1.tgz", - "integrity": "sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ==" - }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -24633,11 +24572,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/tabbable": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz", - "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==" - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index e2cd5fea803..567d944e591 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -1976,7 +1976,6 @@ "@vscode/codicons": "^0.0.36", "@vscode/debugadapter": "^1.59.0", "@vscode/debugprotocol": "^1.68.0", - "@vscode/webview-ui-toolkit": "^1.0.1", "ajv": "^8.11.0", "chokidar": "^3.6.0", "d3": "^7.9.0", diff --git a/extensions/ql-vscode/test/jest-config.ts b/extensions/ql-vscode/test/jest-config.ts index 8b5c584d16f..3270067df7a 100644 --- a/extensions/ql-vscode/test/jest-config.ts +++ b/extensions/ql-vscode/test/jest-config.ts @@ -8,7 +8,6 @@ const transformScopes = [ "@lit-labs", ]; const transformPackages = [ - "@vscode/webview-ui-toolkit", "before-after-hook", "d3", "data-uri-to-buffer", From 4eaee21915e3328bbdd6c90cd09586a0ba002fdc Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Thu, 3 Apr 2025 10:59:05 +0000 Subject: [PATCH 018/100] Fix RepoRow tests --- .../__tests__/RepoRow.spec.tsx | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/extensions/ql-vscode/src/view/variant-analysis/__tests__/RepoRow.spec.tsx b/extensions/ql-vscode/src/view/variant-analysis/__tests__/RepoRow.spec.tsx index b1f4df59a71..1c89400615d 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/__tests__/RepoRow.spec.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/__tests__/RepoRow.spec.tsx @@ -1,9 +1,4 @@ -import { - act, - render as reactRender, - screen, - waitFor, -} from "@testing-library/react"; +import { act, render as reactRender, screen } from "@testing-library/react"; import { VariantAnalysisRepoStatus, VariantAnalysisScannedRepositoryDownloadStatus, @@ -403,7 +398,8 @@ describe(RepoRow.name, () => { status: VariantAnalysisRepoStatus.InProgress, }); - expect(screen.getByRole("checkbox")).toBeDisabled(); + const checkbox = await screen.findByRole("checkbox"); + expect(checkbox).toBeDisabled(); }); it("does not allow selecting the item if the item has not been downloaded", async () => { @@ -411,7 +407,8 @@ describe(RepoRow.name, () => { status: VariantAnalysisRepoStatus.Succeeded, }); - expect(screen.getByRole("checkbox")).toBeDisabled(); + const checkbox = await screen.findByRole("checkbox"); + expect(checkbox).toBeDisabled(); }); it("does not allow selecting the item if the item has not been downloaded successfully", async () => { @@ -423,11 +420,8 @@ describe(RepoRow.name, () => { }, }); - // It seems like sometimes the first render doesn't have the checkbox disabled - // Might be related to https://github.com/microsoft/vscode-webview-ui-toolkit/issues/404 - await waitFor(() => { - expect(screen.getByRole("checkbox")).toBeDisabled(); - }); + const checkbox = await screen.findByRole("checkbox"); + expect(checkbox).toBeDisabled(); }); it("allows selecting the item if the item has been downloaded", async () => { @@ -440,6 +434,7 @@ describe(RepoRow.name, () => { }, }); - expect(screen.getByRole("checkbox")).toBeEnabled(); + const checkbox = await screen.findByRole("checkbox"); + expect(checkbox).toBeEnabled(); }); }); From 560c379df0dd8658dfafd542311566733d65a0bf Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Thu, 3 Apr 2025 11:03:19 +0000 Subject: [PATCH 019/100] Fix VariantAnalysisActions tests --- .../variant-analysis/__tests__/VariantAnalysisActions.spec.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisActions.spec.tsx b/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisActions.spec.tsx index 50502ee184e..ff0a99099a3 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisActions.spec.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisActions.spec.tsx @@ -50,7 +50,7 @@ describe(VariantAnalysisActions.name, () => { variantAnalysisStatus: VariantAnalysisStatus.Canceling, }); - const button = screen.getByText("Stopping query"); + const button = await screen.findByText("Stopping query"); expect(button).toBeInTheDocument(); expect(button).toBeDisabled(); }); From 475fe2079eaf1f00489f6c824a5ba11fc5636cbd Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 3 Apr 2025 14:49:15 +0200 Subject: [PATCH 020/100] Compare perf: Fix missing unit in grouped predicate entry --- .../src/view/compare-performance/ComparePerformance.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx index d072310ea9c..5708b65faf0 100644 --- a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx +++ b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx @@ -81,7 +81,7 @@ class ComparisonDataset { } } -function renderOptionalValue(x: Optional, unit?: string) { +function renderOptionalValue(x: Optional, unit: string | undefined) { switch (x) { case AbsentReason.NotSeen: return n/a; @@ -712,8 +712,8 @@ function PredicateRowGroup(props: PredicateRowGroupProps) { - {comparison && renderOptionalValue(rowGroup.before)} - {renderOptionalValue(rowGroup.after)} + {comparison && renderOptionalValue(rowGroup.before, metric.unit)} + {renderOptionalValue(rowGroup.after, metric.unit)} {comparison && renderDelta(rowGroup.diff, metric.unit)} {renderedName} ({rowGroup.rows.length} predicates) From 197ffc807da1bee9e82743879ffd28801dc5130b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 13:36:10 +0000 Subject: [PATCH 021/100] Bump the typescript-eslint group in /extensions/ql-vscode with 2 updates Bumps the typescript-eslint group in /extensions/ql-vscode with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.28.0 to 8.29.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.29.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.28.0 to 8.29.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.29.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.29.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.29.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 168 ++++++++++++------------- extensions/ql-vscode/package.json | 4 +- 2 files changed, 86 insertions(+), 86 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 76aaa93ff56..21dd8c9a1db 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -95,8 +95,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.28.0", - "@typescript-eslint/parser": "^8.28.0", + "@typescript-eslint/eslint-plugin": "^8.29.0", + "@typescript-eslint/parser": "^8.29.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", @@ -7648,17 +7648,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", - "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz", + "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/type-utils": "8.28.0", - "@typescript-eslint/utils": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/type-utils": "8.29.0", + "@typescript-eslint/utils": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -7678,14 +7678,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", - "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", + "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0" + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7696,9 +7696,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", - "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", + "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", "dev": true, "license": "MIT", "engines": { @@ -7710,14 +7710,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", - "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", + "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -7737,16 +7737,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", - "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", + "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0" + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7761,13 +7761,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", - "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", + "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/types": "8.29.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -7972,16 +7972,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz", - "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz", + "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", "debug": "^4.3.4" }, "engines": { @@ -7997,14 +7997,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", - "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", + "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0" + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8015,9 +8015,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", - "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", + "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", "dev": true, "license": "MIT", "engines": { @@ -8029,14 +8029,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", - "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", + "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8056,13 +8056,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", - "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", + "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/types": "8.29.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8143,14 +8143,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", - "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz", + "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/utils": "8.28.0", + "@typescript-eslint/typescript-estree": "8.29.0", + "@typescript-eslint/utils": "8.29.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -8167,14 +8167,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", - "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", + "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0" + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8185,9 +8185,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", - "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", + "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", "dev": true, "license": "MIT", "engines": { @@ -8199,14 +8199,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", - "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", + "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8226,16 +8226,16 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", - "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", + "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0" + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8250,13 +8250,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", - "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", + "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/types": "8.29.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 3615e186750..6e1d3bbd7e9 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2053,8 +2053,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.28.0", - "@typescript-eslint/parser": "^8.28.0", + "@typescript-eslint/eslint-plugin": "^8.29.0", + "@typescript-eslint/parser": "^8.29.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", From 14101bbaf4bac3a6cf6043cf416af13aca81338c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 13:36:22 +0000 Subject: [PATCH 022/100] Bump prettier from 3.2.5 to 3.5.3 in /extensions/ql-vscode Bumps [prettier](https://github.com/prettier/prettier) from 3.2.5 to 3.5.3. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.2.5...3.5.3) --- updated-dependencies: - dependency-name: prettier dependency-version: 3.5.3 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 9 +++++---- extensions/ql-vscode/package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 76aaa93ff56..1597caf6259 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -131,7 +131,7 @@ "markdownlint-cli2-formatter-pretty": "^0.0.7", "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", - "prettier": "^3.2.5", + "prettier": "^3.5.3", "storybook": "^8.6.10", "tar-stream": "^3.1.7", "through2": "^4.0.2", @@ -22595,10 +22595,11 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 3615e186750..4376e3bcd8e 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2089,7 +2089,7 @@ "markdownlint-cli2-formatter-pretty": "^0.0.7", "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", - "prettier": "^3.2.5", + "prettier": "^3.5.3", "storybook": "^8.6.10", "tar-stream": "^3.1.7", "through2": "^4.0.2", From 68b4eeae65787f2b0875a7f2de61a27a95078180 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 14:39:34 +0000 Subject: [PATCH 023/100] Bump CLI version from v2.20.7 to v2.21.0 for integration tests (#3991) Co-authored-by: github-actions[bot] --- extensions/ql-vscode/supported_cli_versions.json | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/ql-vscode/supported_cli_versions.json b/extensions/ql-vscode/supported_cli_versions.json index 7c7d6b4cb12..82c2806ff0f 100644 --- a/extensions/ql-vscode/supported_cli_versions.json +++ b/extensions/ql-vscode/supported_cli_versions.json @@ -1,4 +1,5 @@ [ + "v2.21.0", "v2.20.7", "v2.19.4", "v2.18.4", From f9538a265937d2411a36483e94ad288ee8123e4f Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 3 Apr 2025 14:49:42 +0000 Subject: [PATCH 024/100] Run: npm run format --- extensions/ql-vscode/src/common/helpers-pure.ts | 2 +- .../src/query-history/history-tree-data-provider.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/ql-vscode/src/common/helpers-pure.ts b/extensions/ql-vscode/src/common/helpers-pure.ts index 20c1a780cb3..861e250b93f 100644 --- a/extensions/ql-vscode/src/common/helpers-pure.ts +++ b/extensions/ql-vscode/src/common/helpers-pure.ts @@ -69,7 +69,7 @@ export function getErrorMessage(e: unknown): string { } export function getErrorStack(e: unknown): string { - return e instanceof Error ? e.stack ?? "" : ""; + return e instanceof Error ? (e.stack ?? "") : ""; } export function asError(e: unknown): Error { diff --git a/extensions/ql-vscode/src/query-history/history-tree-data-provider.ts b/extensions/ql-vscode/src/query-history/history-tree-data-provider.ts index 8f63d109eb5..7b355539a9a 100644 --- a/extensions/ql-vscode/src/query-history/history-tree-data-provider.ts +++ b/extensions/ql-vscode/src/query-history/history-tree-data-provider.ts @@ -138,12 +138,12 @@ export class HistoryTreeDataProvider const resultCount1 = h1.t === "local" - ? h1.completedQuery?.resultCount ?? -1 - : h1.resultCount ?? -1; + ? (h1.completedQuery?.resultCount ?? -1) + : (h1.resultCount ?? -1); const resultCount2 = h2.t === "local" - ? h2.completedQuery?.resultCount ?? -1 - : h2.resultCount ?? -1; + ? (h2.completedQuery?.resultCount ?? -1) + : (h2.resultCount ?? -1); switch (this.sortOrder) { case SortOrder.NameAsc: From 94cb908fdab1d6ec907fbb1c729f7f7c5762cb7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 15:16:22 +0000 Subject: [PATCH 025/100] Bump the storybook group in /extensions/ql-vscode with 12 updates Bumps the storybook group in /extensions/ql-vscode with 12 updates: | Package | From | To | | --- | --- | --- | | [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.6.10` | `8.6.12` | | [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.6.10` | `8.6.12` | | [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.6.10` | `8.6.12` | | [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.6.10` | `8.6.12` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.6.10` | `8.6.12` | | [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/blocks) | `8.6.10` | `8.6.12` | | [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/components) | `8.6.10` | `8.6.12` | | [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.6.10` | `8.6.12` | | [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.6.10` | `8.6.12` | | [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.6.10` | `8.6.12` | | [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.6.10` | `8.6.12` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.6.10` | `8.6.12` | Updates `@storybook/addon-a11y` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/addons/a11y) Updates `@storybook/addon-actions` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v8.6.12/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/addons/actions) Updates `@storybook/addon-essentials` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v8.6.12/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/addons/essentials) Updates `@storybook/addon-interactions` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v8.6.12/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/addons/interactions) Updates `@storybook/addon-links` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/addons/links) Updates `@storybook/blocks` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/lib/blocks) Updates `@storybook/components` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v8.6.12/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/deprecated/components) Updates `@storybook/manager-api` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/lib/manager-api) Updates `@storybook/react` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/renderers/react) Updates `@storybook/react-vite` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/frameworks/react-vite) Updates `@storybook/theming` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/lib/theming) Updates `storybook` from 8.6.10 to 8.6.12 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v8.6.12/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v8.6.12/code/lib/cli) --- updated-dependencies: - dependency-name: "@storybook/addon-a11y" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-actions" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-essentials" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-interactions" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-links" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/blocks" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/components" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/manager-api" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/react" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/react-vite" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/theming" dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: storybook dependency-version: 8.6.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 284 ++++++++++++------------- extensions/ql-vscode/package.json | 22 +- 2 files changed, 153 insertions(+), 153 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 1597caf6259..ef60f306ac7 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -56,19 +56,19 @@ "@jest/environment-jsdom-abstract": "^30.0.0-alpha.7", "@microsoft/eslint-formatter-sarif": "^3.1.0", "@playwright/test": "^1.50.1", - "@storybook/addon-a11y": "^8.6.10", - "@storybook/addon-actions": "^8.6.10", - "@storybook/addon-essentials": "^8.6.10", - "@storybook/addon-interactions": "^8.6.10", - "@storybook/addon-links": "^8.6.10", + "@storybook/addon-a11y": "^8.6.12", + "@storybook/addon-actions": "^8.6.12", + "@storybook/addon-essentials": "^8.6.12", + "@storybook/addon-interactions": "^8.6.12", + "@storybook/addon-links": "^8.6.12", "@storybook/blocks": "^8.6.0", - "@storybook/components": "^8.6.10", + "@storybook/components": "^8.6.12", "@storybook/csf": "^0.1.13", "@storybook/icons": "^1.4.0", - "@storybook/manager-api": "^8.6.10", - "@storybook/react": "^8.6.10", - "@storybook/react-vite": "^8.6.10", - "@storybook/theming": "^8.6.10", + "@storybook/manager-api": "^8.6.12", + "@storybook/react": "^8.6.12", + "@storybook/react-vite": "^8.6.12", + "@storybook/theming": "^8.6.12", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.1.0", @@ -132,7 +132,7 @@ "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", "prettier": "^3.5.3", - "storybook": "^8.6.10", + "storybook": "^8.6.12", "tar-stream": "^3.1.7", "through2": "^4.0.2", "ts-jest": "^29.2.5", @@ -5918,15 +5918,15 @@ } }, "node_modules/@storybook/addon-a11y": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.6.10.tgz", - "integrity": "sha512-g+p0soI03rshuLhBtjvRXfEuj0IxfX5RRIkHKaqpIKKRL8WVVdtLoxkEjOUo5zIAodmZKFEfYLC8+ELR7fmSjw==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.6.12.tgz", + "integrity": "sha512-H28zHiL8uuv29XsVNf9VjNWsCeht/l66GPYHT7aom1jh+f3fS9+sutrCGEBC/T7cnRpy8ZyuHCtihUqS+RI4pg==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/addon-highlight": "8.6.10", + "@storybook/addon-highlight": "8.6.12", "@storybook/global": "^5.0.0", - "@storybook/test": "8.6.10", + "@storybook/test": "8.6.12", "axe-core": "^4.2.0" }, "funding": { @@ -5934,13 +5934,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-actions": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.6.10.tgz", - "integrity": "sha512-g+aC1bFwIwZqxSVjw+BhJJeTmZPBhZT52AO6DUYWF+FZ2N3rjnaVKwT1gZYYhuYw2WtWw2wLivkXcq2L/IBbkg==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.6.12.tgz", + "integrity": "sha512-B5kfiRvi35oJ0NIo53CGH66H471A3XTzrfaa6SxXEJsgxxSeKScG5YeXcCvLiZfvANRQ7QDsmzPUgg0o3hdMXw==", "dev": true, "license": "MIT", "dependencies": { @@ -5955,13 +5955,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-backgrounds": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.6.10.tgz", - "integrity": "sha512-zou/VJSVDacuaQVJV22hbQEZrQBllcoxSw40EgSedqLv1qaVpC7Nz5LY9srl522LeoVEP+AOYKf9K7hLbm0o7w==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.6.12.tgz", + "integrity": "sha512-lmIAma9BiiCTbJ8YfdZkXjpnAIrOUcgboLkt1f6XJ78vNEMnLNzD9gnh7Tssz1qrqvm34v9daDjIb+ggdiKp3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5974,13 +5974,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-controls": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.6.10.tgz", - "integrity": "sha512-aMw3NCVSq+vWEAp10kbBlbMx+7PIFFdgxMCh7b9N2DUR/5J4KCNFQosa8fAn03Noh2g5jgceqNyY6L4lDIu0Xw==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.6.12.tgz", + "integrity": "sha512-9VSRPJWQVb9wLp21uvpxDGNctYptyUX0gbvxIWOHMH3R2DslSoq41lsC/oQ4l4zSHVdL+nq8sCTkhBxIsjKqdQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5993,20 +5993,20 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-docs": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.6.10.tgz", - "integrity": "sha512-VnGtzwVaC8NvfhLr8UdIa6n38emU2SaDzfOTbvR1zibiqRmFDbo+kvAGSPOT6oIC5jZleUTLiIz0GzHxLuMxOQ==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.6.12.tgz", + "integrity": "sha512-kEezQjAf/p3SpDzLABgg4fbT48B6dkT2LiZCKTRmCrJVtuReaAr4R9MMM6Jsph6XjbIj/SvOWf3CMeOPXOs9sg==", "dev": true, "license": "MIT", "dependencies": { "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.6.10", - "@storybook/csf-plugin": "8.6.10", - "@storybook/react-dom-shim": "8.6.10", + "@storybook/blocks": "8.6.12", + "@storybook/csf-plugin": "8.6.12", + "@storybook/react-dom-shim": "8.6.12", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "ts-dedent": "^2.0.0" @@ -6016,25 +6016,25 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-essentials": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.6.10.tgz", - "integrity": "sha512-8sKfAp3KkEjIHm02JhdazEKHlwO8VQgzAHk2fzHREgf24KqlCyF9BhDM1vG38fGdB+B+l1edZTE5a3NmcvK5Cg==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.6.12.tgz", + "integrity": "sha512-Y/7e8KFlttaNfv7q2zoHMPdX6hPXHdsuQMAjYl5NG9HOAJREu4XBy4KZpbcozRe4ApZ78rYsN/MO1EuA+bNMIA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/addon-actions": "8.6.10", - "@storybook/addon-backgrounds": "8.6.10", - "@storybook/addon-controls": "8.6.10", - "@storybook/addon-docs": "8.6.10", - "@storybook/addon-highlight": "8.6.10", - "@storybook/addon-measure": "8.6.10", - "@storybook/addon-outline": "8.6.10", - "@storybook/addon-toolbars": "8.6.10", - "@storybook/addon-viewport": "8.6.10", + "@storybook/addon-actions": "8.6.12", + "@storybook/addon-backgrounds": "8.6.12", + "@storybook/addon-controls": "8.6.12", + "@storybook/addon-docs": "8.6.12", + "@storybook/addon-highlight": "8.6.12", + "@storybook/addon-measure": "8.6.12", + "@storybook/addon-outline": "8.6.12", + "@storybook/addon-toolbars": "8.6.12", + "@storybook/addon-viewport": "8.6.12", "ts-dedent": "^2.0.0" }, "funding": { @@ -6042,13 +6042,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-highlight": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.6.10.tgz", - "integrity": "sha512-ZKl0yKzs/6xOpeDIiqHhfrJGQYA7jQ6cxO2nUm3zyqOnHZspef38VlqE63VttBq+mKnh9VbemmaTd2mUgQnm2A==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.6.12.tgz", + "integrity": "sha512-9FITVxdoycZ+eXuAZL9ElWyML/0fPPn9UgnnAkrU7zkMi+Segq/Tx7y+WWanC5zfWZrXAuG6WTOYEXeWQdm//w==", "dev": true, "license": "MIT", "dependencies": { @@ -6059,19 +6059,19 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-interactions": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.6.10.tgz", - "integrity": "sha512-BtuqLJj1L5a8a4RmnX5YjrGhiEfn7LTdQgn2m71F8DnMCwvvYLHQgYUcpjobMld1OZr3IKq4/zCqesaGET++fQ==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.6.12.tgz", + "integrity": "sha512-cTAJlTq6uVZBEbtwdXkXoPQ4jHOAGKQnYSezBT4pfNkdjn/FnEeaQhMBDzf14h2wr5OgBnJa6Lmd8LD9ficz4A==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.6.10", - "@storybook/test": "8.6.10", + "@storybook/instrumenter": "8.6.12", + "@storybook/test": "8.6.12", "polished": "^4.2.2", "ts-dedent": "^2.2.0" }, @@ -6080,13 +6080,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-links": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.6.10.tgz", - "integrity": "sha512-t7gRsFbOIAsqxb/5KA/LOywvx8USopqfW1KwLDBrDYaRUwkdiJVOSxjKB1a6cndFmqcGzucdXQx/PMmOQe9dig==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.6.12.tgz", + "integrity": "sha512-AfKujFHoAxhxq4yu+6NwylltS9lf5MPs1eLLXvOlwo3l7Y/c68OdxJ7j68vLQhs9H173WVYjKyjbjFxJWf/YYg==", "dev": true, "license": "MIT", "dependencies": { @@ -6099,7 +6099,7 @@ }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.10" + "storybook": "^8.6.12" }, "peerDependenciesMeta": { "react": { @@ -6108,9 +6108,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.6.10.tgz", - "integrity": "sha512-ef5vAum7tMdiTsGsHOIHaLCyN0e3gLU2X4gzNelqH0/x/09C2QQaiOFDIpvbKt6HSjpHJeYcUOGzF7U/o4xVkw==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.6.12.tgz", + "integrity": "sha512-tACmwqqOvutaQSduw8SMb62wICaT1rWaHtMN3vtWXuxgDPSdJQxLP+wdVyRYMAgpxhLyIO7YRf++Hfha9RHgFg==", "dev": true, "license": "MIT", "dependencies": { @@ -6122,13 +6122,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-outline": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.6.10.tgz", - "integrity": "sha512-Z5lQ/q9rULtlD99V1S3ymEU59tJGD2KHEdr4HRUgxo+fkyy7nOZDi88sOupoICBuAVYBIcxLKiMeYrUIwjHqtg==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.6.12.tgz", + "integrity": "sha512-1ylwm+n1s40S91No0v9T4tCjZORu3GbnjINlyjYTDLLhQHyBQd3nWR1Y1eewU4xH4cW9SnSLcMQFS/82xHqU6A==", "dev": true, "license": "MIT", "dependencies": { @@ -6140,13 +6140,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-toolbars": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.6.10.tgz", - "integrity": "sha512-cHhI+9r/Wt/l+E02V2UvybkmdembqjVUagLNHRIRQSqx0tH762G0OD3JzOC2nqmXMjABY2mUkADORhWERfMPjg==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.6.12.tgz", + "integrity": "sha512-HEcSzo1DyFtIu5/ikVOmh5h85C1IvK9iFKSzBR6ice33zBOaehVJK+Z5f487MOXxPsZ63uvWUytwPyViGInj+g==", "dev": true, "license": "MIT", "funding": { @@ -6154,13 +6154,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/addon-viewport": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.6.10.tgz", - "integrity": "sha512-0ATxfA+bHpTcdTUc83VVJF3XPJqe64Yl1I9UWnx/XG2gzo8avRA44pQe8ETH5Fwr7kAvDMqW6LXAisfsl20wrg==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.6.12.tgz", + "integrity": "sha512-EXK2LArAnABsPP0leJKy78L/lbMWow+EIJfytEP5fHaW4EhMR6h7Hzaqzre6U0IMMr/jVFa1ci+m0PJ0eQc2bw==", "dev": true, "license": "MIT", "dependencies": { @@ -6171,13 +6171,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/blocks": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.6.10.tgz", - "integrity": "sha512-S9XVyN36utNAo78/IHUP1DpCw7vBw5Ef4iO9diF+MLtxP3jJwFXPFkyBSi7AnWig9FH3I8vYI1fh1a4/nk1H4g==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.6.12.tgz", + "integrity": "sha512-DohlTq6HM1jDbHYiXL4ZvZ00VkhpUp5uftzj/CZDLY1fYHRjqtaTwWm2/OpceivMA8zDitLcq5atEZN+f+siTg==", "dev": true, "license": "MIT", "dependencies": { @@ -6191,7 +6191,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "^8.6.10" + "storybook": "^8.6.12" }, "peerDependenciesMeta": { "react": { @@ -6203,13 +6203,13 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.6.10.tgz", - "integrity": "sha512-RXT4uflQSgXSHbWG+Z2Im5r7Ji1wj0Lyo6hVJZIBLEbaIbjfvPtP9CXlhK/z1h90cegHTnkYDd01RHwgmlKRrg==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.6.12.tgz", + "integrity": "sha512-Gju21ud/3Qw4v2vLNaa5SuJECsI9ICNRr2G0UyCCzRvCHg8jpA9lDReu2NqhLDyFIuDG+ZYT38gcaHEUoNQ8KQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf-plugin": "8.6.10", + "@storybook/csf-plugin": "8.6.12", "browser-assert": "^1.2.1", "ts-dedent": "^2.0.0" }, @@ -6218,14 +6218,14 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10", + "storybook": "^8.6.12", "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@storybook/components": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.6.10.tgz", - "integrity": "sha512-9TE2aZU+1zjGO4R74jc4Dmx+pFb+9hm1vnlWH+WVfYV1nCSCZOMmMoO2J86PHPkR6RmPjcQJXz4ySdBbYiwKiw==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.6.12.tgz", + "integrity": "sha512-FiaE8xvCdvKC2arYusgtlDNZ77b8ysr8njAYQZwwaIHjy27TbR2tEpLDCmUwSbANNmivtc/xGEiDDwcNppMWlQ==", "dev": true, "license": "MIT", "funding": { @@ -6237,13 +6237,13 @@ } }, "node_modules/@storybook/core": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.10.tgz", - "integrity": "sha512-VyhE/9/idPeeObsx+DyD8RR2iEwLJGL9rYz61r+1IrpndIVnlYD+vjxc0Y/1jTG1RvShWzEF2A/vzsJ9PzXqcw==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.12.tgz", + "integrity": "sha512-t+ZuDzAlsXKa6tLxNZT81gEAt4GNwsKP/Id2wluhmUWD/lwYW0uum1JiPUuanw8xD6TdakCW/7ULZc7aQUBLCQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/theming": "8.6.10", + "@storybook/theming": "8.6.12", "better-opn": "^3.0.2", "browser-assert": "^1.2.1", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", @@ -6279,9 +6279,9 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.6.10.tgz", - "integrity": "sha512-yjtFyjEvmmWUG1NzM81/CLI5rOUG311EoPmRnvbNpdzaVug4emC3rX9mR69DsrXfL7kLTDltDH8tjA7wLxpGMA==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.6.12.tgz", + "integrity": "sha512-6s8CnP1aoKPb3XtC0jRLUp8M5vTA8RhGAwQDKUsFpCC7g89JR9CaKs9FY2ZSzsNbjR15uASi7b3K8BzeYumYQg==", "dev": true, "license": "MIT", "dependencies": { @@ -6292,7 +6292,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/global": { @@ -6316,9 +6316,9 @@ } }, "node_modules/@storybook/instrumenter": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.6.10.tgz", - "integrity": "sha512-Hlps6V0lkhFMbgcJQRynVBne51ciG7Xv+YtiDCd0PQtvZu8+vVJr/ebWt3nCwpvkRHooYiud1ScA3K8McyA73w==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.6.12.tgz", + "integrity": "sha512-VK5fYAF8jMwWP/u3YsmSwKGh+FeSY8WZn78flzRUwirp2Eg1WWjsqPRubAk7yTpcqcC/km9YMF3KbqfzRv2s/A==", "dev": true, "license": "MIT", "dependencies": { @@ -6330,13 +6330,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/manager-api": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.6.10.tgz", - "integrity": "sha512-roJ2aXqbZfSh9IM4q34U2GpU0CDmUjTKGwAnYOS2SG6rGLPenPflIksW8A52cVFdzGa4eH/KzP2FIg5Zi1KLJQ==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.6.12.tgz", + "integrity": "sha512-O0SpISeJLNTQvhSBOsWzzkCgs8vCjOq1578rwqHlC6jWWm4QmtfdyXqnv7rR1Hk08kQ+Dzqh0uhwHx0nfwy4nQ==", "dev": true, "license": "MIT", "funding": { @@ -6348,9 +6348,9 @@ } }, "node_modules/@storybook/preview-api": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.6.10.tgz", - "integrity": "sha512-8ki1GgiUlcSqZD3Oe42Fy0uW3E7XPpMAyzO+NSnHCKKfNlZgi036Rr+FyGcKwG5lJyubWwNesPGQX5UHigYu4w==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.6.12.tgz", + "integrity": "sha512-84FE3Hrs0AYKHqpDZOwx1S/ffOfxBdL65lhCoeI8GoWwCkzwa9zEP3kvXBo/BnEDO7nAfxvMhjASTZXbKRJh5Q==", "dev": true, "license": "MIT", "funding": { @@ -6362,18 +6362,18 @@ } }, "node_modules/@storybook/react": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.6.10.tgz", - "integrity": "sha512-QCs5nyXe+G2ZoZ1uspEsnSp7VYLJej5dJ1bSf22rrdHQde641zvC2HZQaba4dqR2YQxRCG9JtCdaQ3UVmnfzzA==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.6.12.tgz", + "integrity": "sha512-NzxlHLA5DkDgZM/dMwTYinuzRs6rsUPmlqP+NIv6YaciQ4NGnTYyOC7R/SqI6HHFm8ZZ5eMYvpfiFmhZ9rU+rQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/components": "8.6.10", + "@storybook/components": "8.6.12", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "8.6.10", - "@storybook/preview-api": "8.6.10", - "@storybook/react-dom-shim": "8.6.10", - "@storybook/theming": "8.6.10" + "@storybook/manager-api": "8.6.12", + "@storybook/preview-api": "8.6.12", + "@storybook/react-dom-shim": "8.6.12", + "@storybook/theming": "8.6.12" }, "engines": { "node": ">=18.0.0" @@ -6383,10 +6383,10 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/test": "8.6.10", + "@storybook/test": "8.6.12", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.10", + "storybook": "^8.6.12", "typescript": ">= 4.2.x" }, "peerDependenciesMeta": { @@ -6399,9 +6399,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.6.10.tgz", - "integrity": "sha512-r4Q5stsoIlSEvOpOJgyFGPej+t9uuIzGI2ul83XNtiHEBs7xlmUN7qAm+U9cOuNZ7mPOXDKt9nZfUfCP5Ouhyw==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.6.12.tgz", + "integrity": "sha512-51QvoimkBzYs8s3rCYnY5h0cFqLz/Mh0vRcughwYaXckWzDBV8l67WBO5Xf5nBsukCbWyqBVPpEQLww8s7mrLA==", "dev": true, "license": "MIT", "funding": { @@ -6411,20 +6411,20 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/react-vite": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.6.10.tgz", - "integrity": "sha512-CyptES7yE1fnZWMN5xk6AFPuchjg4YN8VvBaC0YyveKhfeXlczGwG9nPU28ZY3I+Xzz5g/A6rBvgSRQ88hc/bQ==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.6.12.tgz", + "integrity": "sha512-UA2Kule99oyFgHdhcuhrRwCKyWu/yMbqbl9U7NwowFHNwWWFjVMMir/AmfShb/H1C1DQ3LqOad6/QwJyPLjP8g==", "dev": true, "license": "MIT", "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.5.0", "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "8.6.10", - "@storybook/react": "8.6.10", + "@storybook/builder-vite": "8.6.12", + "@storybook/react": "8.6.12", "find-up": "^5.0.0", "magic-string": "^0.30.0", "react-docgen": "^7.0.0", @@ -6439,10 +6439,10 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/test": "8.6.10", + "@storybook/test": "8.6.12", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.10", + "storybook": "^8.6.12", "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" }, "peerDependenciesMeta": { @@ -6475,14 +6475,14 @@ } }, "node_modules/@storybook/test": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.6.10.tgz", - "integrity": "sha512-eCQueRB0SpwjnXcE5wmUNu2G7Z7nRzzHw+0QW2Yc3DoA5UwmOiuwTseZenQkD019dwvFJ87fHo1xXnDAamX1Tg==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.6.12.tgz", + "integrity": "sha512-0BK1Eg+VD0lNMB1BtxqHE3tP9FdkUmohtvWG7cq6lWvMrbCmAmh3VWai3RMCCDOukPFpjabOr8BBRLVvhNpv2w==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.6.10", + "@storybook/instrumenter": "8.6.12", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", "@testing-library/user-event": "14.5.2", @@ -6494,7 +6494,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.10" + "storybook": "^8.6.12" } }, "node_modules/@storybook/test/node_modules/@testing-library/jest-dom": { @@ -6579,9 +6579,9 @@ } }, "node_modules/@storybook/theming": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.10.tgz", - "integrity": "sha512-4E5ArcJ/bhrWtlYzQDbtA3O3pha/Ys0Ja6X4waJQ5UJENzUMdVz6vTLSUHtG5hNRmSqreogxe4Ed88+0JtY7NQ==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.12.tgz", + "integrity": "sha512-6VjZg8HJ2Op7+KV7ihJpYrDnFtd9D1jrQnUS8LckcpuBXrIEbaut5+34ObY8ssQnSqkk2GwIZBBBQYQBCVvkOw==", "dev": true, "license": "MIT", "funding": { @@ -24015,13 +24015,13 @@ } }, "node_modules/storybook": { - "version": "8.6.10", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.10.tgz", - "integrity": "sha512-7LUD9hNllMZZhDJutxgejrpWI89rsBF+p2kCfWoJ9EuBTgRy8bbVQZlG7bE1gf7qLmnabnklsFslTakS2SbKRw==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.12.tgz", + "integrity": "sha512-Z/nWYEHBTLK1ZBtAWdhxC0l5zf7ioJ7G4+zYqtTdYeb67gTnxNj80gehf8o8QY9L2zA2+eyMRGLC2V5fI7Z3Tw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core": "8.6.10" + "@storybook/core": "8.6.12" }, "bin": { "getstorybook": "bin/index.cjs", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 4376e3bcd8e..f0ade4b5a52 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2014,19 +2014,19 @@ "@jest/environment-jsdom-abstract": "^30.0.0-alpha.7", "@microsoft/eslint-formatter-sarif": "^3.1.0", "@playwright/test": "^1.50.1", - "@storybook/addon-a11y": "^8.6.10", - "@storybook/addon-actions": "^8.6.10", - "@storybook/addon-essentials": "^8.6.10", - "@storybook/addon-interactions": "^8.6.10", - "@storybook/addon-links": "^8.6.10", + "@storybook/addon-a11y": "^8.6.12", + "@storybook/addon-actions": "^8.6.12", + "@storybook/addon-essentials": "^8.6.12", + "@storybook/addon-interactions": "^8.6.12", + "@storybook/addon-links": "^8.6.12", "@storybook/blocks": "^8.6.0", - "@storybook/components": "^8.6.10", + "@storybook/components": "^8.6.12", "@storybook/csf": "^0.1.13", "@storybook/icons": "^1.4.0", - "@storybook/manager-api": "^8.6.10", - "@storybook/react": "^8.6.10", - "@storybook/react-vite": "^8.6.10", - "@storybook/theming": "^8.6.10", + "@storybook/manager-api": "^8.6.12", + "@storybook/react": "^8.6.12", + "@storybook/react-vite": "^8.6.12", + "@storybook/theming": "^8.6.12", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.1.0", @@ -2090,7 +2090,7 @@ "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", "prettier": "^3.5.3", - "storybook": "^8.6.10", + "storybook": "^8.6.12", "tar-stream": "^3.1.7", "through2": "^4.0.2", "ts-jest": "^29.2.5", From b7cde9fd23b05e0494086137f090ae1af1784d17 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 4 Apr 2025 12:26:18 +0000 Subject: [PATCH 026/100] Bump Node version to v20.18.3 --- extensions/ql-vscode/.nvmrc | 2 +- extensions/ql-vscode/package-lock.json | 2 +- extensions/ql-vscode/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/.nvmrc b/extensions/ql-vscode/.nvmrc index 3f35247103b..4a207c55991 100644 --- a/extensions/ql-vscode/.nvmrc +++ b/extensions/ql-vscode/.nvmrc @@ -1 +1 @@ -v20.18.2 +v20.18.3 diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 746711fa803..309cbe2313a 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -144,7 +144,7 @@ "vite-node": "^3.0.7" }, "engines": { - "node": "^20.18.2", + "node": "^20.18.3", "npm": ">=7.20.6", "vscode": "^1.90.0" } diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index d7c8122dff5..78f501ea545 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -14,7 +14,7 @@ }, "engines": { "vscode": "^1.90.0", - "node": "^20.18.2", + "node": "^20.18.3", "npm": ">=7.20.6" }, "categories": [ From c570a9d3fbab8df16d2b665c35d175636c75b7bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Apr 2025 16:09:00 +0000 Subject: [PATCH 027/100] Bump vite in /extensions/ql-vscode in the npm_and_yarn group Bumps the npm_and_yarn group in /extensions/ql-vscode with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite). Updates `vite` from 6.2.4 to 6.2.5 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.2.5 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 8 ++++---- extensions/ql-vscode/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 309cbe2313a..b329cac5a37 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -140,7 +140,7 @@ "ts-node": "^10.9.2", "ts-unused-exports": "^10.1.0", "typescript": "^5.6.2", - "vite": "^6.2.4", + "vite": "^6.2.5", "vite-node": "^3.0.7" }, "engines": { @@ -25999,9 +25999,9 @@ } }, "node_modules/vite": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.4.tgz", - "integrity": "sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz", + "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 78f501ea545..d382f07ca31 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2098,7 +2098,7 @@ "ts-node": "^10.9.2", "ts-unused-exports": "^10.1.0", "typescript": "^5.6.2", - "vite": "^6.2.4", + "vite": "^6.2.5", "vite-node": "^3.0.7" }, "lint-staged": { From 3941de8d70889b331c36c05a905e608280099642 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 7 Apr 2025 08:53:07 +0000 Subject: [PATCH 028/100] Mock out assignedElements from HTMLSlotElement --- extensions/ql-vscode/src/view/jest.setup.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extensions/ql-vscode/src/view/jest.setup.ts b/extensions/ql-vscode/src/view/jest.setup.ts index d4e03100de6..31dc6657d40 100644 --- a/extensions/ql-vscode/src/view/jest.setup.ts +++ b/extensions/ql-vscode/src/view/jest.setup.ts @@ -28,6 +28,9 @@ window.ElementInternals.prototype.setFormValue = jest window.ElementInternals.prototype.setValidity = jest .fn() .mockReturnValue(undefined); +window.HTMLSlotElement.prototype.assignedElements = jest + .fn() + .mockReturnValue([]); // Store this on the window so we can mock it window.vsCodeApi = { From 986399a3eb5777ec8da5de82c7503cb632ba24d1 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 7 Apr 2025 09:55:01 +0000 Subject: [PATCH 029/100] Replace Button secondary attribute --- extensions/ql-vscode/src/stories/common/Alert.stories.tsx | 2 +- .../ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx | 4 ++-- extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx | 4 ++-- .../ql-vscode/src/view/model-editor/ModelEvaluation.tsx | 4 ++-- .../src/view/variant-analysis/VariantAnalysisActions.tsx | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/extensions/ql-vscode/src/stories/common/Alert.stories.tsx b/extensions/ql-vscode/src/stories/common/Alert.stories.tsx index 29bad2ba33f..2267ccb2696 100644 --- a/extensions/ql-vscode/src/stories/common/Alert.stories.tsx +++ b/extensions/ql-vscode/src/stories/common/Alert.stories.tsx @@ -84,7 +84,7 @@ ErrorWithButtons.args = { "Request to https://api.github.com/repos/octodemo/Hello-World/code-scanning/codeql/queries failed. Try running this query again.", actions: ( <> - View actions logs + View actions logs Retry ), diff --git a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx index b37e94282ec..da73126d2fc 100644 --- a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx +++ b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsActions.tsx @@ -25,12 +25,12 @@ export const ModelAlertsActions = ({ return ( {variantAnalysisStatus === VariantAnalysisStatus.InProgress && ( - )} {variantAnalysisStatus === VariantAnalysisStatus.Canceling && ( - )} diff --git a/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx b/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx index 5594ad0a5ab..344a0d32d98 100644 --- a/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx +++ b/extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx @@ -338,13 +338,13 @@ export function ModelEditor({ {selectedSignatures.size === 0 ? "Save all" : "Save selected"} Deselect all - + Refresh {viewState.showGenerateButton && diff --git a/extensions/ql-vscode/src/view/model-editor/ModelEvaluation.tsx b/extensions/ql-vscode/src/view/model-editor/ModelEvaluation.tsx index 492f8903f59..ba0266c083f 100644 --- a/extensions/ql-vscode/src/view/model-editor/ModelEvaluation.tsx +++ b/extensions/ql-vscode/src/view/model-editor/ModelEvaluation.tsx @@ -55,14 +55,14 @@ export const ModelEvaluation = ({ {shouldShowEvaluateButton && ( Evaluate )} {shouldShowStopButton && ( - + Stop evaluation diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx index eb76113c10b..8a573761ef0 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx @@ -67,7 +67,7 @@ export const VariantAnalysisActions = ({ {showResultActions && ( <> )} {variantAnalysisStatus === VariantAnalysisStatus.Canceling && ( - )} From 56bc3b413fcfec9796200132cb29dea02fd02578 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 7 Apr 2025 10:00:42 +0000 Subject: [PATCH 030/100] Tidy up props for VariantAnalysisOutcomePanels --- .../variant-analysis/VariantAnalysisOutcomePanels.tsx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx index 33031924f49..03849913f85 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx @@ -177,7 +177,7 @@ export const VariantAnalysisOutcomePanels = ({ {scannedReposCount > 0 && ( Analyzed - + {formatDecimal(variantAnalysis.scannedRepos?.length ?? 0)} @@ -185,17 +185,13 @@ export const VariantAnalysisOutcomePanels = ({ {notFoundRepos?.repositoryCount && ( No access - - {formatDecimal(notFoundRepos.repositoryCount)} - + {formatDecimal(notFoundRepos.repositoryCount)} )} {noCodeqlDbRepos?.repositoryCount && ( No database - - {formatDecimal(noCodeqlDbRepos.repositoryCount)} - + {formatDecimal(noCodeqlDbRepos.repositoryCount)} )} {scannedReposCount > 0 && ( From e9f85b09fa3513e0985f7b0566ecd0352f0fe76b Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 7 Apr 2025 12:10:08 +0000 Subject: [PATCH 031/100] Add ActionButton component --- .../view/common/ActionButton/ActionButton.css | 58 +++++++++++++++++++ .../view/common/ActionButton/ActionButton.tsx | 12 ++++ 2 files changed, 70 insertions(+) create mode 100644 extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css create mode 100644 extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css new file mode 100644 index 00000000000..f3155c72b9e --- /dev/null +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css @@ -0,0 +1,58 @@ +.vscode-action-button { + align-items: center; + background-color: transparent; + border-color: transparent; + border-style: solid; + border-width: 1px; + border-radius: 5px; + color: var(--vscode-foreground); + display: inline-flex; + cursor: pointer; + padding: 0; + user-select: none; +} + +.vscode-action-button:disabled { + color: var(--vscode-disabledForeground); + cursor: default; + pointer-events: none; +} + +.vscode-action-button .codicon, +.vscode-action-button svg { + color: var(--vscode-icon-foreground); + display: block; + padding: 2px; +} + +.vscode-action-button svg { + box-sizing: content-box; + height: 16px; + width: 16px; +} + +.vscode-action-button:disabled .codicon, +.vscode-action-button:disabled svg { + color: var(--vscode-disabledForeground); +} + +.vscode-action-button:hover { + background-color: var(--vscode-toolbar-hoverBackground); +} + +.vscode-action-button:active { + background-color: var(--vscode-toolbar-activeBackground); +} + +.vscode-action-button:focus { + outline: none; +} + +.vscode-action-button:focus-visible { + border-color: var(--vscode-focusBorder); +} + +.label { + display: block; + padding: 0 5px 0 2px; +} diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx new file mode 100644 index 00000000000..0f798ed81f5 --- /dev/null +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx @@ -0,0 +1,12 @@ +import "./ActionButton.css"; + +// This is needed because vscode-elements/elements does not implement +// the same styles for icon buttons as vscode/webview-ui-toolkit +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const ActionButton = (props: any) => { + return ( + + ); +}; From d59a84be177082b6d52fb68938c270bb30ba52b4 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 7 Apr 2025 12:20:50 +0000 Subject: [PATCH 032/100] Add --vscode-contrastActiveBorder to the rest of the stories themes --- extensions/ql-vscode/src/stories/vscode-theme-dark.css | 1 + .../ql-vscode/src/stories/vscode-theme-github-dark-default.css | 1 + .../ql-vscode/src/stories/vscode-theme-github-light-default.css | 1 + extensions/ql-vscode/src/stories/vscode-theme-light.css | 1 + 4 files changed, 4 insertions(+) diff --git a/extensions/ql-vscode/src/stories/vscode-theme-dark.css b/extensions/ql-vscode/src/stories/vscode-theme-dark.css index 27765d50057..9b598272c02 100644 --- a/extensions/ql-vscode/src/stories/vscode-theme-dark.css +++ b/extensions/ql-vscode/src/stories/vscode-theme-dark.css @@ -18,6 +18,7 @@ --vscode-descriptionForeground: rgba(204, 204, 204, 0.7); --vscode-icon-foreground: #c5c5c5; --vscode-focusBorder: #007fd4; + --vscode-contrastActiveBorder: #f38518; --vscode-textSeparator-foreground: rgba(255, 255, 255, 0.18); --vscode-textLink-foreground: #3794ff; --vscode-textLink-activeForeground: #3794ff; diff --git a/extensions/ql-vscode/src/stories/vscode-theme-github-dark-default.css b/extensions/ql-vscode/src/stories/vscode-theme-github-dark-default.css index 5be183020e3..2c1dcb7ad45 100644 --- a/extensions/ql-vscode/src/stories/vscode-theme-github-dark-default.css +++ b/extensions/ql-vscode/src/stories/vscode-theme-github-dark-default.css @@ -19,6 +19,7 @@ --vscode-descriptionForeground: #8b949e; --vscode-icon-foreground: #8b949e; --vscode-focusBorder: #1f6feb; + --vscode-contrastActiveBorder: #f38518; --vscode-textSeparator-foreground: #21262d; --vscode-textLink-foreground: #58a6ff; --vscode-textLink-activeForeground: #58a6ff; diff --git a/extensions/ql-vscode/src/stories/vscode-theme-github-light-default.css b/extensions/ql-vscode/src/stories/vscode-theme-github-light-default.css index 641e38f8475..7e5466744d3 100644 --- a/extensions/ql-vscode/src/stories/vscode-theme-github-light-default.css +++ b/extensions/ql-vscode/src/stories/vscode-theme-github-light-default.css @@ -19,6 +19,7 @@ --vscode-descriptionForeground: #57606a; --vscode-icon-foreground: #57606a; --vscode-focusBorder: #0969da; + --vscode-contrastActiveBorder: #f38518; --vscode-textSeparator-foreground: #d8dee4; --vscode-textLink-foreground: #0969da; --vscode-textLink-activeForeground: #0969da; diff --git a/extensions/ql-vscode/src/stories/vscode-theme-light.css b/extensions/ql-vscode/src/stories/vscode-theme-light.css index 3ff0361ab14..5afb28a3f89 100644 --- a/extensions/ql-vscode/src/stories/vscode-theme-light.css +++ b/extensions/ql-vscode/src/stories/vscode-theme-light.css @@ -18,6 +18,7 @@ --vscode-descriptionForeground: #717171; --vscode-icon-foreground: #424242; --vscode-focusBorder: #0090f1; + --vscode-contrastActiveBorder: #0f4a85; --vscode-textSeparator-foreground: rgba(0, 0, 0, 0.18); --vscode-textLink-foreground: #006ab1; --vscode-textLink-activeForeground: #006ab1; From bebde7cec3a54eaf37e2cd576542a18caaacead5 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 7 Apr 2025 12:21:06 +0000 Subject: [PATCH 033/100] Tweak ActionButton styles and add comments --- .../src/view/common/ActionButton/ActionButton.css | 4 ++++ .../src/view/common/ActionButton/ActionButton.tsx | 12 +++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css index f3155c72b9e..967cde10188 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css @@ -1,3 +1,5 @@ +/* Styles have been copied from https://vscode-elements.github.io/elements-lite/components/action-button/configurator/ */ + .vscode-action-button { align-items: center; background-color: transparent; @@ -38,6 +40,8 @@ .vscode-action-button:hover { background-color: var(--vscode-toolbar-hoverBackground); + outline: 1px dotted var(--vscode-contrastActiveBorder); + outline-offset: -1px; } .vscode-action-button:active { diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx index 0f798ed81f5..bc93ea0f0b0 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx @@ -3,10 +3,8 @@ import "./ActionButton.css"; // This is needed because vscode-elements/elements does not implement // the same styles for icon buttons as vscode/webview-ui-toolkit // eslint-disable-next-line @typescript-eslint/no-explicit-any -export const ActionButton = (props: any) => { - return ( - - ); -}; +export const ActionButton = (props: any) => ( + +); From 5bf2ca56211133c2968aae019f64964201825789 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 7 Apr 2025 15:00:47 +0000 Subject: [PATCH 034/100] Fix styles for icon buttons --- .../MultipleModeledMethodsPanel.tsx | 21 ++++++++----------- .../src/view/model-editor/LibraryRow.tsx | 9 ++++---- .../src/view/model-editor/MethodRow.tsx | 7 +++---- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx b/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx index 30b78c3fed1..3a12f0a2119 100644 --- a/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx +++ b/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx @@ -15,6 +15,7 @@ import { createEmptyModeledMethod } from "../../model-editor/modeled-method-empt import { sendTelemetry } from "../common/telemetry"; import type { ModelConfig } from "../../model-editor/languages"; import { VscodeButton } from "@vscode-elements/react-elements"; +import { ActionButton } from "../common/ActionButton/ActionButton"; export type MultipleModeledMethodsPanelProps = { language: QueryLanguage; @@ -168,21 +169,19 @@ export const MultipleModeledMethodsPanel = ({ )}
- - + {modeledMethods.length > 1 && (
{selectedIndex + 1}/{modeledMethods.length}
)} - - +
- - - + - +
diff --git a/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx b/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx index 1821560ea28..31053db69da 100644 --- a/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx @@ -12,6 +12,7 @@ import type { ModelEditorViewState } from "../../model-editor/shared/view-state" import type { AccessPathSuggestionOptions } from "../../model-editor/suggestions"; import type { ModelEvaluationRunState } from "../../model-editor/shared/model-evaluation-run-state"; import { Tag } from "../common/Tag"; +import { ActionButton } from "../common/ActionButton/ActionButton"; const LibraryContainer = styled.div` background-color: var(--vscode-peekViewResult-background); @@ -170,16 +171,16 @@ export const LibraryRow = ({ {viewState.showGenerateButton && viewState.mode === Mode.Application && ( - +  Model from source - + )} {viewState.mode === Mode.Application && ( - +  Model dependency - + )} {isExpanded && ( diff --git a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx index 5ca610827a1..95cc735775c 100644 --- a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx @@ -1,4 +1,3 @@ -import { VscodeButton } from "@vscode-elements/react-elements"; import { forwardRef, useCallback, @@ -10,6 +9,8 @@ import { import { styled } from "styled-components"; import { vscode } from "../vscode-api"; import { Link } from "../common/Link"; +import { ActionButton } from "../common/ActionButton/ActionButton"; +import "../common/ActionButton/ActionButton.css"; import type { Method } from "../../model-editor/method"; import type { ModeledMethod } from "../../model-editor/modeled-method"; @@ -61,7 +62,7 @@ const ViewLink = styled(Link)` white-space: nowrap; `; -const CodiconRow = styled(VscodeButton)` +const CodiconRow = styled(ActionButton)` min-height: calc(var(--input-height) * 1px); align-items: center; `; @@ -319,7 +320,6 @@ const ModelableMethodRow = forwardRef( > {index === 0 ? ( { event.stopPropagation(); @@ -331,7 +331,6 @@ const ModelableMethodRow = forwardRef( ) : ( { event.stopPropagation(); From b801c782e1162f8c46e5b54b1c7be6fae63300b5 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 7 Apr 2025 15:48:50 +0000 Subject: [PATCH 035/100] Fix lint --- .../src/view/method-modeling/MultipleModeledMethodsPanel.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx b/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx index 3a12f0a2119..ed55c497d71 100644 --- a/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx +++ b/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx @@ -14,7 +14,6 @@ import type { QueryLanguage } from "../../common/query-language"; import { createEmptyModeledMethod } from "../../model-editor/modeled-method-empty"; import { sendTelemetry } from "../common/telemetry"; import type { ModelConfig } from "../../model-editor/languages"; -import { VscodeButton } from "@vscode-elements/react-elements"; import { ActionButton } from "../common/ActionButton/ActionButton"; export type MultipleModeledMethodsPanelProps = { From 39dc154e9516f8b6951357a48b1bfc9063d5ec9c Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Mon, 7 Apr 2025 13:21:04 -0700 Subject: [PATCH 036/100] Update skeleton-query-wizard.ts Add an `actions` sample database. I chose `github/codeql` since we know it has many complex workflows. --- extensions/ql-vscode/src/local-queries/skeleton-query-wizard.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/ql-vscode/src/local-queries/skeleton-query-wizard.ts b/extensions/ql-vscode/src/local-queries/skeleton-query-wizard.ts index 49d7bcaab11..795870bed3a 100644 --- a/extensions/ql-vscode/src/local-queries/skeleton-query-wizard.ts +++ b/extensions/ql-vscode/src/local-queries/skeleton-query-wizard.ts @@ -38,6 +38,7 @@ import { getQlPackLanguage } from "../common/qlpack-language"; type QueryLanguagesToDatabaseMap = Record; export const QUERY_LANGUAGE_TO_DATABASE_REPO: QueryLanguagesToDatabaseMap = { + actions: "github/codeql", cpp: "google/brotli", csharp: "restsharp/RestSharp", go: "spf13/cobra", From 4eeea1098b67204fabf272cdf42fb9e2d7dda859 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 9 Apr 2025 08:46:28 +0000 Subject: [PATCH 037/100] Use correct css variables for Link --- extensions/ql-vscode/src/view/common/Link.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/ql-vscode/src/view/common/Link.tsx b/extensions/ql-vscode/src/view/common/Link.tsx index 9fa73906433..a0e37b92bcd 100644 --- a/extensions/ql-vscode/src/view/common/Link.tsx +++ b/extensions/ql-vscode/src/view/common/Link.tsx @@ -3,12 +3,12 @@ import { styled } from "styled-components"; export const Link = styled.a` background: transparent; box-sizing: border-box; - color: var(--link-foreground); + color: var(--vscode-textLink-foreground); cursor: pointer; fill: currentcolor; - font-family: var(--font-family); - font-size: var(--type-ramp-base-font-size); - line-height: var(--type-ramp-base-line-height); + font-family: var(--vscode-font-family); + font-size: var(--vscode-font-size); + line-height: normal; outline: none; &:hover { From 6e225d37f3c485a97ad68ba8dd80cb667e586139 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 9 Apr 2025 09:38:50 +0000 Subject: [PATCH 038/100] Bring back icon for SearchBox --- extensions/ql-vscode/src/view/common/SearchBox.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/view/common/SearchBox.tsx b/extensions/ql-vscode/src/view/common/SearchBox.tsx index a158f40c4b1..7837c143e76 100644 --- a/extensions/ql-vscode/src/view/common/SearchBox.tsx +++ b/extensions/ql-vscode/src/view/common/SearchBox.tsx @@ -7,6 +7,10 @@ const TextField = styled(VscodeTextfield)` width: 100%; `; +const SearchIcon = styled(Codicon)` + margin: 0 8px; +`; + type Props = { value: string; placeholder: string; @@ -37,7 +41,7 @@ export const SearchBox = ({ onInput={handleInput} className={className} > - + ); }; From 8cd4b2012f5dc02e648d97f9b507bb0e2e73d0fc Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 9 Apr 2025 10:25:10 +0000 Subject: [PATCH 039/100] Change Dropdown prop from onInput to onChange --- extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx | 2 +- .../ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx | 2 +- .../src/view/variant-analysis/RepositoriesResultFormat.tsx | 2 +- .../ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx index dbc80ea2ea7..e5d4e9f2eb6 100644 --- a/extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx +++ b/extensions/ql-vscode/src/view/model-alerts/ModelAlertsSort.tsx @@ -29,7 +29,7 @@ export const ModelAlertsSort = ({ value, onChange, className }: Props) => { ); return ( - + Alphabetically diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx index 784d045d861..206b33586fb 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesFilter.tsx @@ -29,7 +29,7 @@ export const RepositoriesFilter = ({ value, onChange, className }: Props) => { ); return ( - + All With results diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx index d2e19e1d090..380599017eb 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx @@ -33,7 +33,7 @@ export const RepositoriesResultFormat = ({ ); return ( - + {ResultFormat.Alerts} diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx index 874bca0de2c..96ec4c43dd4 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesSort.tsx @@ -29,7 +29,7 @@ export const RepositoriesSort = ({ value, onChange, className }: Props) => { ); return ( - + Alphabetically From cb9a79c7a0cb3452f1aefea8b4d8f2af0d09fbfd Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 9 Apr 2025 14:56:28 +0000 Subject: [PATCH 040/100] Add negative right margin to Checkbox --- extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx index da0f00f4b41..19edad08cc2 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepoRow.tsx @@ -62,6 +62,10 @@ const MetadataContainer = styled.div` margin-left: auto; `; +const Checkbox = styled(VscodeCheckbox)` + margin-right: -9px; // VscodeCheckbox has 9px margin on the right by default +`; + type VisibilityProps = { isPrivate?: boolean; }; @@ -255,7 +259,7 @@ export const RepoRow = ({ disabled={disabled} aria-expanded={isExpanded} > - Date: Wed, 9 Apr 2025 15:06:28 +0000 Subject: [PATCH 041/100] Fix divider styling --- extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx b/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx index 31053db69da..f2f1065b4d9 100644 --- a/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx @@ -36,8 +36,8 @@ const TitleContainer = styled.button` `; const SectionDivider = styled(VscodeDivider)` - padding-top: 0.3rem; - padding-bottom: 0.3rem; + margin-top: 0.3rem; + margin-bottom: 0.8rem; `; const NameContainer = styled.div` From 6f39d9b8fe6d2e1c848df52f6c570a9c9a1224a1 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 9 Apr 2025 15:09:13 +0000 Subject: [PATCH 042/100] Remove eslint-disables --- .../ql-vscode/src/view/common/ActionButton/ActionButton.css | 1 - .../ql-vscode/src/view/common/ActionButton/ActionButton.tsx | 3 +-- extensions/ql-vscode/src/view/common/Badge.tsx | 3 +-- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css index 967cde10188..fb4164fd038 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css @@ -1,5 +1,4 @@ /* Styles have been copied from https://vscode-elements.github.io/elements-lite/components/action-button/configurator/ */ - .vscode-action-button { align-items: center; background-color: transparent; diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx index bc93ea0f0b0..04ee778b0ba 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx @@ -2,8 +2,7 @@ import "./ActionButton.css"; // This is needed because vscode-elements/elements does not implement // the same styles for icon buttons as vscode/webview-ui-toolkit -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const ActionButton = (props: any) => ( +export const ActionButton = (props: React.ComponentProps<"button">) => ( diff --git a/extensions/ql-vscode/src/view/common/Badge.tsx b/extensions/ql-vscode/src/view/common/Badge.tsx index 70568f1b2a6..cb9826bcab8 100644 --- a/extensions/ql-vscode/src/view/common/Badge.tsx +++ b/extensions/ql-vscode/src/view/common/Badge.tsx @@ -1,8 +1,7 @@ import { VscodeBadge } from "@vscode-elements/react-elements"; // This applies the counter variant by default so the border-radius attribute is set -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const Badge = (props: any) => ( +export const Badge = (props: React.ComponentProps) => ( {props.children} From d09133f700bb8dae8c5b66cd6fa7eff895eda6ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:30:04 +0000 Subject: [PATCH 043/100] Bump the typescript-eslint group in /extensions/ql-vscode with 2 updates Bumps the typescript-eslint group in /extensions/ql-vscode with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.29.0 to 8.29.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.29.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.29.0 to 8.29.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.29.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.29.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.29.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 168 ++++++++++++------------- extensions/ql-vscode/package.json | 4 +- 2 files changed, 86 insertions(+), 86 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index b329cac5a37..e6fdbf3a58e 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -95,8 +95,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.29.0", - "@typescript-eslint/parser": "^8.29.0", + "@typescript-eslint/eslint-plugin": "^8.29.1", + "@typescript-eslint/parser": "^8.29.1", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", @@ -7648,17 +7648,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz", - "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz", + "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/type-utils": "8.29.0", - "@typescript-eslint/utils": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/type-utils": "8.29.1", + "@typescript-eslint/utils": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -7678,14 +7678,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", - "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", + "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0" + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7696,9 +7696,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", - "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", + "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", "dev": true, "license": "MIT", "engines": { @@ -7710,14 +7710,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", - "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", + "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -7737,16 +7737,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz", + "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0" + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/typescript-estree": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7761,13 +7761,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", - "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", + "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/types": "8.29.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -7972,16 +7972,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz", - "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz", + "integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/typescript-estree": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "debug": "^4.3.4" }, "engines": { @@ -7997,14 +7997,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", - "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", + "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0" + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8015,9 +8015,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", - "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", + "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", "dev": true, "license": "MIT", "engines": { @@ -8029,14 +8029,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", - "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", + "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8056,13 +8056,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", - "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", + "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/types": "8.29.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8143,14 +8143,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz", - "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz", + "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.29.0", - "@typescript-eslint/utils": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.1", + "@typescript-eslint/utils": "8.29.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -8167,14 +8167,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", - "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", + "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0" + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8185,9 +8185,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", - "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", + "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", "dev": true, "license": "MIT", "engines": { @@ -8199,14 +8199,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", - "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", + "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8226,16 +8226,16 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz", + "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0" + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/typescript-estree": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8250,13 +8250,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", - "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", + "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/types": "8.29.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index d382f07ca31..9ae8a09103f 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2053,8 +2053,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.29.0", - "@typescript-eslint/parser": "^8.29.0", + "@typescript-eslint/eslint-plugin": "^8.29.1", + "@typescript-eslint/parser": "^8.29.1", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", From f5ab6ce27ec7ba441fcb0fcaf1e4c1305a1241bd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:30:16 +0000 Subject: [PATCH 044/100] Bump husky from 9.1.5 to 9.1.7 in /extensions/ql-vscode Bumps [husky](https://github.com/typicode/husky) from 9.1.5 to 9.1.7. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v9.1.5...v9.1.7) --- updated-dependencies: - dependency-name: husky dependency-version: 9.1.7 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 9 +++++---- extensions/ql-vscode/package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index b329cac5a37..dc2f754826b 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -122,7 +122,7 @@ "gulp-esbuild": "^0.14.0", "gulp-replace": "^1.1.3", "gulp-typescript": "^5.0.1", - "husky": "^9.1.5", + "husky": "^9.1.7", "jest": "^30.0.0-alpha.7", "jest-runner-vscode": "^3.0.1", "jsdom": "^26.0.0", @@ -14928,10 +14928,11 @@ } }, "node_modules/husky": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.5.tgz", - "integrity": "sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, + "license": "MIT", "bin": { "husky": "bin.js" }, diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index d382f07ca31..11c9b444d92 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2080,7 +2080,7 @@ "gulp-esbuild": "^0.14.0", "gulp-replace": "^1.1.3", "gulp-typescript": "^5.0.1", - "husky": "^9.1.5", + "husky": "^9.1.7", "jest": "^30.0.0-alpha.7", "jest-runner-vscode": "^3.0.1", "jsdom": "^26.0.0", From a5e48efe9c25b8efda29f3f5a8a47fef93829258 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:31:14 +0000 Subject: [PATCH 045/100] Bump codercom/code-server in /extensions/ql-vscode/test/e2e/docker Bumps codercom/code-server from 4.98.2 to 4.99.1. --- updated-dependencies: - dependency-name: codercom/code-server dependency-version: 4.99.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/test/e2e/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/test/e2e/docker/Dockerfile b/extensions/ql-vscode/test/e2e/docker/Dockerfile index 0f1e537538f..840508da873 100644 --- a/extensions/ql-vscode/test/e2e/docker/Dockerfile +++ b/extensions/ql-vscode/test/e2e/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM codercom/code-server:4.98.2 +FROM codercom/code-server:4.99.1 USER root From 7975e92a35a38935784cc6c0ce5cdf8912bb528c Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Fri, 11 Apr 2025 12:31:27 +0200 Subject: [PATCH 046/100] Set up CSS module support --- extensions/ql-vscode/package-lock.json | 832 ++++++++++++++++++++ extensions/ql-vscode/package.json | 1 + extensions/ql-vscode/src/view/tsconfig.json | 7 +- extensions/ql-vscode/src/view/types.d.ts | 1 + 4 files changed, 840 insertions(+), 1 deletion(-) create mode 100644 extensions/ql-vscode/src/view/types.d.ts diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index b329cac5a37..ff7f87b661a 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -140,6 +140,7 @@ "ts-node": "^10.9.2", "ts-unused-exports": "^10.1.0", "typescript": "^5.6.2", + "typescript-plugin-css-modules": "^5.1.0", "vite": "^6.2.5", "vite-node": "^3.0.7" }, @@ -5497,6 +5498,338 @@ "node": ">=14" } }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/@phenomnomnominal/tsquery": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-5.0.1.tgz", @@ -7414,6 +7747,26 @@ "integrity": "sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg==", "dev": true }, + "node_modules/@types/postcss-modules-local-by-default": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.2.tgz", + "integrity": "sha512-CtYCcD+L+trB3reJPny+bKWKMzPfxEyQpKIwit7kErnOexf5/faaGpkFy4I5AwbV4hp1sk7/aTg0tt0B67VkLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/@types/postcss-modules-scope": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/postcss-modules-scope/-/postcss-modules-scope-3.0.4.tgz", + "integrity": "sha512-//ygSisVq9kVI0sqx3UPLzWIMCmtSVrzdljtuaAEJtGoGnpjBikZ2sXO5MpH9SnWX9HRfXxHifDAXcQjupWnIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "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", @@ -10636,6 +10989,19 @@ "node": ">= 0.6" } }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/copy-props": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", @@ -10907,6 +11273,19 @@ "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/cssstyle": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.0.tgz", @@ -11907,6 +12286,19 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -12072,6 +12464,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -14953,6 +15359,19 @@ "node": ">=0.10.0" } }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -14982,12 +15401,33 @@ "node": ">= 4" } }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", "dev": true }, + "node_modules/immutable": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz", + "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==", + "dev": true, + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -15754,6 +16194,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -19657,6 +20104,44 @@ "node": ">= 0.10" } }, + "node_modules/less": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.3.0.tgz", + "integrity": "sha512-X9RyH9fvemArzfdP8Pi3irr7lor2Ok4rOttDXBhlwDg+wKQsXOXgHWduAJE1EsF7JJx0w0bcO6BC6tCKKYnXKA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -20340,6 +20825,43 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -21409,6 +21931,24 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -21984,6 +22524,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -22534,6 +23084,117 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -22710,6 +23371,14 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "license": "ISC" }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -23309,6 +23978,13 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "node_modules/reserved-words": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", + "integrity": "sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -23644,6 +24320,57 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sass": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.3.tgz", + "integrity": "sha512-iGtg8kus4GrsGLRDLRBRHY9dNVA78ZaS7xr01cWnS7PEMQyFtTqBiyCrfpTYTZXRWM94akzckYjh8oADfFNTzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", @@ -24441,6 +25168,58 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" }, + "node_modules/stylus": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.62.0.tgz", + "integrity": "sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "~4.3.1", + "debug": "^4.3.2", + "glob": "^7.1.6", + "sax": "~1.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://opencollective.com/stylus" + } + }, + "node_modules/stylus/node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/stylus/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -25478,6 +26257,59 @@ "node": ">=14.17" } }, + "node_modules/typescript-plugin-css-modules": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/typescript-plugin-css-modules/-/typescript-plugin-css-modules-5.1.0.tgz", + "integrity": "sha512-6h+sLBa4l+XYSTn/31vZHd/1c3SvAbLpobY6FxDiUOHJQG1eD9Gh3eCs12+Eqc+TCOAdxcO+zAPvUq0jBfdciw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/postcss-modules-local-by-default": "^4.0.2", + "@types/postcss-modules-scope": "^3.0.4", + "dotenv": "^16.4.2", + "icss-utils": "^5.1.0", + "less": "^4.2.0", + "lodash.camelcase": "^4.3.0", + "postcss": "^8.4.35", + "postcss-load-config": "^3.1.4", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", + "reserved-words": "^0.1.2", + "sass": "^1.70.0", + "source-map-js": "^1.0.2", + "stylus": "^0.62.0", + "tsconfig-paths": "^4.2.0" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/typescript-plugin-css-modules/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript-plugin-css-modules/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index d382f07ca31..a375dee2b7f 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2098,6 +2098,7 @@ "ts-node": "^10.9.2", "ts-unused-exports": "^10.1.0", "typescript": "^5.6.2", + "typescript-plugin-css-modules": "^5.1.0", "vite": "^6.2.5", "vite-node": "^3.0.7" }, diff --git a/extensions/ql-vscode/src/view/tsconfig.json b/extensions/ql-vscode/src/view/tsconfig.json index 4abd2c7f8a9..d094c039d78 100644 --- a/extensions/ql-vscode/src/view/tsconfig.json +++ b/extensions/ql-vscode/src/view/tsconfig.json @@ -14,7 +14,12 @@ "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "experimentalDecorators": true, - "skipLibCheck": true + "skipLibCheck": true, + "plugins": [ + { + "name": "typescript-plugin-css-modules" + } + ] }, "exclude": ["node_modules"] } diff --git a/extensions/ql-vscode/src/view/types.d.ts b/extensions/ql-vscode/src/view/types.d.ts new file mode 100644 index 00000000000..1eabbb4297e --- /dev/null +++ b/extensions/ql-vscode/src/view/types.d.ts @@ -0,0 +1 @@ +declare module "*.module.css"; From 8014162bc92bd5de47bf0bbef8ac1652e98cbb92 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Fri, 11 Apr 2025 14:42:45 +0000 Subject: [PATCH 047/100] Use css modules instead of global classes --- ...tionButton.css => ActionButton.module.css} | 22 +++++++++---------- .../view/common/ActionButton/ActionButton.tsx | 4 ++-- .../src/view/model-editor/MethodRow.tsx | 1 - 3 files changed, 13 insertions(+), 14 deletions(-) rename extensions/ql-vscode/src/view/common/ActionButton/{ActionButton.css => ActionButton.module.css} (73%) diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css similarity index 73% rename from extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css rename to extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css index fb4164fd038..b7fb646a79b 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.css +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css @@ -1,5 +1,5 @@ /* Styles have been copied from https://vscode-elements.github.io/elements-lite/components/action-button/configurator/ */ -.vscode-action-button { +.actionButton { align-items: center; background-color: transparent; border-color: transparent; @@ -13,45 +13,45 @@ user-select: none; } -.vscode-action-button:disabled { +.actionButton:disabled { color: var(--vscode-disabledForeground); cursor: default; pointer-events: none; } -.vscode-action-button .codicon, -.vscode-action-button svg { +.actionButton .codicon, +.actionButton svg { color: var(--vscode-icon-foreground); display: block; padding: 2px; } -.vscode-action-button svg { +.actionButton svg { box-sizing: content-box; height: 16px; width: 16px; } -.vscode-action-button:disabled .codicon, -.vscode-action-button:disabled svg { +.actionButton:disabled .codicon, +.actionButton:disabled svg { color: var(--vscode-disabledForeground); } -.vscode-action-button:hover { +.actionButton:hover { background-color: var(--vscode-toolbar-hoverBackground); outline: 1px dotted var(--vscode-contrastActiveBorder); outline-offset: -1px; } -.vscode-action-button:active { +.actionButton:active { background-color: var(--vscode-toolbar-activeBackground); } -.vscode-action-button:focus { +.actionButton:focus { outline: none; } -.vscode-action-button:focus-visible { +.actionButton:focus-visible { border-color: var(--vscode-focusBorder); } diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx index 04ee778b0ba..f673fd56f96 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.tsx @@ -1,9 +1,9 @@ -import "./ActionButton.css"; +import styles from "./ActionButton.module.css"; // This is needed because vscode-elements/elements does not implement // the same styles for icon buttons as vscode/webview-ui-toolkit export const ActionButton = (props: React.ComponentProps<"button">) => ( - ); diff --git a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx index 95cc735775c..ed9eb8e76ac 100644 --- a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx @@ -10,7 +10,6 @@ import { styled } from "styled-components"; import { vscode } from "../vscode-api"; import { Link } from "../common/Link"; import { ActionButton } from "../common/ActionButton/ActionButton"; -import "../common/ActionButton/ActionButton.css"; import type { Method } from "../../model-editor/method"; import type { ModeledMethod } from "../../model-editor/modeled-method"; From c639f7d8344e56e53da60f8a42f6151de47ba66d Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Fri, 11 Apr 2025 15:03:42 +0000 Subject: [PATCH 048/100] Remove manually added css variable --- extensions/ql-vscode/src/stories/vscode-theme-dark.css | 1 - .../ql-vscode/src/stories/vscode-theme-github-dark-default.css | 1 - .../ql-vscode/src/stories/vscode-theme-github-light-default.css | 1 - extensions/ql-vscode/src/stories/vscode-theme-light.css | 1 - 4 files changed, 4 deletions(-) diff --git a/extensions/ql-vscode/src/stories/vscode-theme-dark.css b/extensions/ql-vscode/src/stories/vscode-theme-dark.css index 9b598272c02..27765d50057 100644 --- a/extensions/ql-vscode/src/stories/vscode-theme-dark.css +++ b/extensions/ql-vscode/src/stories/vscode-theme-dark.css @@ -18,7 +18,6 @@ --vscode-descriptionForeground: rgba(204, 204, 204, 0.7); --vscode-icon-foreground: #c5c5c5; --vscode-focusBorder: #007fd4; - --vscode-contrastActiveBorder: #f38518; --vscode-textSeparator-foreground: rgba(255, 255, 255, 0.18); --vscode-textLink-foreground: #3794ff; --vscode-textLink-activeForeground: #3794ff; diff --git a/extensions/ql-vscode/src/stories/vscode-theme-github-dark-default.css b/extensions/ql-vscode/src/stories/vscode-theme-github-dark-default.css index 2c1dcb7ad45..5be183020e3 100644 --- a/extensions/ql-vscode/src/stories/vscode-theme-github-dark-default.css +++ b/extensions/ql-vscode/src/stories/vscode-theme-github-dark-default.css @@ -19,7 +19,6 @@ --vscode-descriptionForeground: #8b949e; --vscode-icon-foreground: #8b949e; --vscode-focusBorder: #1f6feb; - --vscode-contrastActiveBorder: #f38518; --vscode-textSeparator-foreground: #21262d; --vscode-textLink-foreground: #58a6ff; --vscode-textLink-activeForeground: #58a6ff; diff --git a/extensions/ql-vscode/src/stories/vscode-theme-github-light-default.css b/extensions/ql-vscode/src/stories/vscode-theme-github-light-default.css index 7e5466744d3..641e38f8475 100644 --- a/extensions/ql-vscode/src/stories/vscode-theme-github-light-default.css +++ b/extensions/ql-vscode/src/stories/vscode-theme-github-light-default.css @@ -19,7 +19,6 @@ --vscode-descriptionForeground: #57606a; --vscode-icon-foreground: #57606a; --vscode-focusBorder: #0969da; - --vscode-contrastActiveBorder: #f38518; --vscode-textSeparator-foreground: #d8dee4; --vscode-textLink-foreground: #0969da; --vscode-textLink-activeForeground: #0969da; diff --git a/extensions/ql-vscode/src/stories/vscode-theme-light.css b/extensions/ql-vscode/src/stories/vscode-theme-light.css index 5afb28a3f89..3ff0361ab14 100644 --- a/extensions/ql-vscode/src/stories/vscode-theme-light.css +++ b/extensions/ql-vscode/src/stories/vscode-theme-light.css @@ -18,7 +18,6 @@ --vscode-descriptionForeground: #717171; --vscode-icon-foreground: #424242; --vscode-focusBorder: #0090f1; - --vscode-contrastActiveBorder: #0f4a85; --vscode-textSeparator-foreground: rgba(0, 0, 0, 0.18); --vscode-textLink-foreground: #006ab1; --vscode-textLink-activeForeground: #006ab1; From f5dfc8af351405f284e9c6d59e4b4b48b347d08f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 15:53:11 +0000 Subject: [PATCH 049/100] Bump vite in /extensions/ql-vscode in the npm_and_yarn group Bumps the npm_and_yarn group in /extensions/ql-vscode with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite). Updates `vite` from 6.2.5 to 6.2.6 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.6/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.6/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.2.6 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 8 ++++---- extensions/ql-vscode/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index ff7f87b661a..95064c92d57 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -141,7 +141,7 @@ "ts-unused-exports": "^10.1.0", "typescript": "^5.6.2", "typescript-plugin-css-modules": "^5.1.0", - "vite": "^6.2.5", + "vite": "^6.2.6", "vite-node": "^3.0.7" }, "engines": { @@ -26831,9 +26831,9 @@ } }, "node_modules/vite": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz", - "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==", + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz", + "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index a375dee2b7f..c71a1351c8e 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2099,7 +2099,7 @@ "ts-unused-exports": "^10.1.0", "typescript": "^5.6.2", "typescript-plugin-css-modules": "^5.1.0", - "vite": "^6.2.5", + "vite": "^6.2.6", "vite-node": "^3.0.7" }, "lint-staged": { From 5a799b2cda6357d91a25ce7c99dae0043d2cadfb Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 14 Apr 2025 08:56:13 +0000 Subject: [PATCH 050/100] Add default value for action button hover outline --- .../src/view/common/ActionButton/ActionButton.module.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css index b7fb646a79b..dfd812e2f8e 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css @@ -39,7 +39,7 @@ .actionButton:hover { background-color: var(--vscode-toolbar-hoverBackground); - outline: 1px dotted var(--vscode-contrastActiveBorder); + outline: 1px dotted var(--vscode-contrastActiveBorder, #f38518); outline-offset: -1px; } From 329ac0d882e9e72b71cc12bae3eb72f93f721a9b Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 14 Apr 2025 09:49:56 +0000 Subject: [PATCH 051/100] Default action button outline to transparent --- .../src/view/common/ActionButton/ActionButton.module.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css index dfd812e2f8e..4967da0238a 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css @@ -39,7 +39,7 @@ .actionButton:hover { background-color: var(--vscode-toolbar-hoverBackground); - outline: 1px dotted var(--vscode-contrastActiveBorder, #f38518); + outline: 1px dotted var(--vscode-contrastActiveBorder, transparent); outline-offset: -1px; } From 718cdc95e3b566f7d9b38a12abb113e092b042b2 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Mon, 14 Apr 2025 10:20:13 +0000 Subject: [PATCH 052/100] Fix check-types job --- extensions/ql-vscode/src/stories/types.d.ts | 1 + 1 file changed, 1 insertion(+) create mode 100644 extensions/ql-vscode/src/stories/types.d.ts diff --git a/extensions/ql-vscode/src/stories/types.d.ts b/extensions/ql-vscode/src/stories/types.d.ts new file mode 100644 index 00000000000..1eabbb4297e --- /dev/null +++ b/extensions/ql-vscode/src/stories/types.d.ts @@ -0,0 +1 @@ +declare module "*.module.css"; From 1d2a22aa67f0b128b4e9b1e90724daa3bef2e136 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Tue, 15 Apr 2025 09:11:44 +0000 Subject: [PATCH 053/100] Fix Badge for method modelling --- extensions/ql-vscode/src/view/model-editor/MethodRow.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx index ed9eb8e76ac..6e753c3532d 100644 --- a/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx +++ b/extensions/ql-vscode/src/view/model-editor/MethodRow.tsx @@ -55,6 +55,7 @@ const ModelButtonsContainer = styled.div` const UsagesButton = styled(Badge)` cursor: pointer; + display: table; `; const ViewLink = styled(Link)` From 881ef75da8823183193b15108abecdb747d7b0b5 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 16 Apr 2025 10:05:50 +0000 Subject: [PATCH 054/100] Don't render 0 if a result is falsy --- .../VariantAnalysisOutcomePanels.tsx | 68 ++++++++++--------- 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx index 03849913f85..39f9eaab1ac 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx @@ -182,18 +182,20 @@ export const VariantAnalysisOutcomePanels = ({ )} - {notFoundRepos?.repositoryCount && ( - - No access - {formatDecimal(notFoundRepos.repositoryCount)} - - )} - {noCodeqlDbRepos?.repositoryCount && ( - - No database - {formatDecimal(noCodeqlDbRepos.repositoryCount)} - - )} + {notFoundRepos?.repositoryCount !== undefined && + notFoundRepos?.repositoryCount > 0 && ( + + No access + {formatDecimal(notFoundRepos.repositoryCount)} + + )} + {noCodeqlDbRepos?.repositoryCount !== undefined && + noCodeqlDbRepos?.repositoryCount > 0 && ( + + No database + {formatDecimal(noCodeqlDbRepos.repositoryCount)} + + )} {scannedReposCount > 0 && ( )} - {notFoundRepos?.repositoryCount && ( - - - - )} - {noCodeqlDbRepos?.repositoryCount && ( - - - - )} + {notFoundRepos?.repositoryCount !== undefined && + notFoundRepos?.repositoryCount > 0 && ( + + + + )} + {noCodeqlDbRepos?.repositoryCount !== undefined && + noCodeqlDbRepos?.repositoryCount > 0 && ( + + + + )} ); From fca2ee7b45c137bd20b87eae6ca6cac2ae7da174 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 16 Apr 2025 10:50:58 +0000 Subject: [PATCH 055/100] Add changelog --- extensions/ql-vscode/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extensions/ql-vscode/CHANGELOG.md b/extensions/ql-vscode/CHANGELOG.md index 03054c92082..34e224a8121 100644 --- a/extensions/ql-vscode/CHANGELOG.md +++ b/extensions/ql-vscode/CHANGELOG.md @@ -2,6 +2,8 @@ ## [UNRELEASED] +- Remove the use of `@vscode/webview-ui-toolkit`. [#3986] (https://github.com/github/vscode-codeql/pull/3986) + ## 1.17.2 - 27 March 2025 - Always authenticate when downloading databases from GitHub, instead of only when in canary mode. [#3941](https://github.com/github/vscode-codeql/pull/3941) From edf0f4686ef5ca3e6a09a4613365dcf5f0199c1f Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 16 Apr 2025 13:52:59 +0000 Subject: [PATCH 056/100] Revert change to CHANGELOG --- extensions/ql-vscode/CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/extensions/ql-vscode/CHANGELOG.md b/extensions/ql-vscode/CHANGELOG.md index 34e224a8121..03054c92082 100644 --- a/extensions/ql-vscode/CHANGELOG.md +++ b/extensions/ql-vscode/CHANGELOG.md @@ -2,8 +2,6 @@ ## [UNRELEASED] -- Remove the use of `@vscode/webview-ui-toolkit`. [#3986] (https://github.com/github/vscode-codeql/pull/3986) - ## 1.17.2 - 27 March 2025 - Always authenticate when downloading databases from GitHub, instead of only when in canary mode. [#3941](https://github.com/github/vscode-codeql/pull/3941) From c263e3001cae3552ffe8b97dd0d2941621ada7a4 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 16 Apr 2025 13:53:51 +0000 Subject: [PATCH 057/100] Tidy up ActionButton css module --- .../src/view/common/ActionButton/ActionButton.module.css | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css index 4967da0238a..70a8e8a1577 100644 --- a/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css +++ b/extensions/ql-vscode/src/view/common/ActionButton/ActionButton.module.css @@ -19,7 +19,7 @@ pointer-events: none; } -.actionButton .codicon, +.actionButton :global(.codicon), .actionButton svg { color: var(--vscode-icon-foreground); display: block; @@ -32,7 +32,7 @@ width: 16px; } -.actionButton:disabled .codicon, +.actionButton:disabled :global(.codicon), .actionButton:disabled svg { color: var(--vscode-disabledForeground); } @@ -54,8 +54,3 @@ .actionButton:focus-visible { border-color: var(--vscode-focusBorder); } - -.label { - display: block; - padding: 0 5px 0 2px; -} From 4c49158a9826dca041be31eea1f3e9f6d4e22b99 Mon Sep 17 00:00:00 2001 From: Tuan Nguen Date: Wed, 16 Apr 2025 13:55:23 +0000 Subject: [PATCH 058/100] Make comment clearer --- .../src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx index 39f9eaab1ac..1f138ffd8cd 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx @@ -46,7 +46,7 @@ const TabHeader = styled(VscodeTabHeader)` text-transform: uppercase; > * { - // This copies the styles from VSCodePanelTab + // This copies the styles from @vscode/webview-ui-toolkit's VSCodePanelTab &:last-child { margin-left: 8px; } From 698787516d1df9b2b65380c605b1094639f987eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 13:23:26 +0000 Subject: [PATCH 059/100] Bump the typescript-eslint group in /extensions/ql-vscode with 2 updates Bumps the typescript-eslint group in /extensions/ql-vscode with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.29.1 to 8.30.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.30.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.29.1 to 8.30.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.30.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.30.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.30.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 168 ++++++++++++------------- extensions/ql-vscode/package.json | 4 +- 2 files changed, 86 insertions(+), 86 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 151aff7f4ca..107492c9a42 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -95,8 +95,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.29.1", - "@typescript-eslint/parser": "^8.29.1", + "@typescript-eslint/eslint-plugin": "^8.30.1", + "@typescript-eslint/parser": "^8.30.1", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", @@ -7990,17 +7990,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz", - "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.30.1.tgz", + "integrity": "sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/type-utils": "8.29.1", - "@typescript-eslint/utils": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", + "@typescript-eslint/scope-manager": "8.30.1", + "@typescript-eslint/type-utils": "8.30.1", + "@typescript-eslint/utils": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -8020,14 +8020,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", - "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", + "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1" + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8038,9 +8038,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", - "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", + "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", "dev": true, "license": "MIT", "engines": { @@ -8052,14 +8052,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", - "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", + "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8079,16 +8079,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz", - "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz", + "integrity": "sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/typescript-estree": "8.29.1" + "@typescript-eslint/scope-manager": "8.30.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/typescript-estree": "8.30.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8103,13 +8103,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", - "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", + "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/types": "8.30.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8314,16 +8314,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz", - "integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.30.1.tgz", + "integrity": "sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/typescript-estree": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", + "@typescript-eslint/scope-manager": "8.30.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/typescript-estree": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", "debug": "^4.3.4" }, "engines": { @@ -8339,14 +8339,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", - "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", + "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1" + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8357,9 +8357,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", - "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", + "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", "dev": true, "license": "MIT", "engines": { @@ -8371,14 +8371,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", - "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", + "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8398,13 +8398,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", - "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", + "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/types": "8.30.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8485,14 +8485,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz", - "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.30.1.tgz", + "integrity": "sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.29.1", - "@typescript-eslint/utils": "8.29.1", + "@typescript-eslint/typescript-estree": "8.30.1", + "@typescript-eslint/utils": "8.30.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -8509,14 +8509,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", - "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", + "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1" + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8527,9 +8527,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", - "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", + "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", "dev": true, "license": "MIT", "engines": { @@ -8541,14 +8541,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", - "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", + "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8568,16 +8568,16 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz", - "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz", + "integrity": "sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/typescript-estree": "8.29.1" + "@typescript-eslint/scope-manager": "8.30.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/typescript-estree": "8.30.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8592,13 +8592,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", - "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", + "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/types": "8.30.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index ff05f3a01bd..9f6c96a1d5e 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2053,8 +2053,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.29.1", - "@typescript-eslint/parser": "^8.29.1", + "@typescript-eslint/eslint-plugin": "^8.30.1", + "@typescript-eslint/parser": "^8.30.1", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", From abf797c13628f5f19b3cf79d8434a15dd7800ec9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 13:23:40 +0000 Subject: [PATCH 060/100] Bump msw from 2.6.8 to 2.7.4 in /extensions/ql-vscode Bumps [msw](https://github.com/mswjs/msw) from 2.6.8 to 2.7.4. - [Release notes](https://github.com/mswjs/msw/releases) - [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md) - [Commits](https://github.com/mswjs/msw/compare/v2.6.8...v2.7.4) --- updated-dependencies: - dependency-name: msw dependency-version: 2.7.4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 58 +++----------------------- extensions/ql-vscode/package.json | 2 +- 2 files changed, 6 insertions(+), 54 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 151aff7f4ca..2e7901e507f 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -24,7 +24,7 @@ "d3-graphviz": "^5.0.2", "fs-extra": "^11.1.1", "js-yaml": "^4.1.0", - "msw": "^2.6.8", + "msw": "^2.7.4", "nanoid": "^5.0.7", "p-queue": "^8.0.1", "proper-lockfile": "^4.1.2", @@ -21800,9 +21800,9 @@ "dev": true }, "node_modules/msw": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/msw/-/msw-2.6.8.tgz", - "integrity": "sha512-nxXxnH6WALZ9a7rsQp4HU2AaD4iGAiouMmE/MY4al7pXTibgA6OZOuKhmN2WBIM6w9qMKwRtX8p2iOb45B2M/Q==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.7.4.tgz", + "integrity": "sha512-A2kuMopOjAjNEYkn0AnB1uj+x7oBjLIunFk7Ud4icEnVWFf6iBekn8oXW4zIwcpfEdWP9sLqyVaHVzneWoGEww==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -21815,12 +21815,12 @@ "@open-draft/until": "^2.1.0", "@types/cookie": "^0.6.0", "@types/statuses": "^2.0.4", - "chalk": "^4.1.2", "graphql": "^16.8.1", "headers-polyfill": "^4.0.2", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", "path-to-regexp": "^6.3.0", + "picocolors": "^1.1.1", "strict-event-emitter": "^0.5.1", "type-fest": "^4.26.1", "yargs": "^17.7.2" @@ -21843,60 +21843,12 @@ } } }, - "node_modules/msw/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/msw/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/msw/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/msw/node_modules/path-to-regexp": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", "license": "MIT" }, - "node_modules/msw/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/msw/node_modules/type-fest": { "version": "4.30.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index ff05f3a01bd..174afcda3fb 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -1982,7 +1982,7 @@ "d3-graphviz": "^5.0.2", "fs-extra": "^11.1.1", "js-yaml": "^4.1.0", - "msw": "^2.6.8", + "msw": "^2.7.4", "nanoid": "^5.0.7", "p-queue": "^8.0.1", "proper-lockfile": "^4.1.2", From 12cdcebed251a661d17cdc898534d6f83df415fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 13:56:42 +0000 Subject: [PATCH 061/100] Bump codercom/code-server in /extensions/ql-vscode/test/e2e/docker Bumps codercom/code-server from 4.99.1 to 4.99.2. --- updated-dependencies: - dependency-name: codercom/code-server dependency-version: 4.99.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/test/e2e/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/test/e2e/docker/Dockerfile b/extensions/ql-vscode/test/e2e/docker/Dockerfile index 840508da873..36d576a89d1 100644 --- a/extensions/ql-vscode/test/e2e/docker/Dockerfile +++ b/extensions/ql-vscode/test/e2e/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM codercom/code-server:4.99.1 +FROM codercom/code-server:4.99.2 USER root From f333a9a72f260c75abc094a81335506b706c272d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 14:46:21 +0000 Subject: [PATCH 062/100] Bump the testing-library group across 1 directory with 2 updates Bumps the testing-library group with 2 updates in the /extensions/ql-vscode directory: [@testing-library/react](https://github.com/testing-library/react-testing-library) and [@testing-library/user-event](https://github.com/testing-library/user-event). Updates `@testing-library/react` from 16.1.0 to 16.2.0 - [Release notes](https://github.com/testing-library/react-testing-library/releases) - [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/react-testing-library/compare/v16.1.0...v16.2.0) Updates `@testing-library/user-event` from 14.5.2 to 14.6.1 - [Release notes](https://github.com/testing-library/user-event/releases) - [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/user-event/compare/v14.5.2...v14.6.1) --- updated-dependencies: - dependency-name: "@testing-library/react" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: testing-library - dependency-name: "@testing-library/user-event" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: testing-library ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 31 +++++++++++++++++++------- extensions/ql-vscode/package.json | 4 ++-- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index ff7fda74db8..28561888a8b 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -71,8 +71,8 @@ "@storybook/theming": "^8.6.12", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^16.1.0", - "@testing-library/user-event": "^14.5.2", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", "@types/cross-spawn": "^6.0.6", "@types/d3": "^7.4.0", "@types/d3-graphviz": "^2.6.6", @@ -6834,6 +6834,20 @@ "yarn": ">=1" } }, + "node_modules/@storybook/test/node_modules/@testing-library/user-event": { + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, "node_modules/@storybook/test/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -7055,9 +7069,9 @@ } }, "node_modules/@testing-library/react": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.1.0.tgz", - "integrity": "sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", + "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", "dev": true, "license": "MIT", "dependencies": { @@ -7083,10 +7097,11 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.5.2", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", - "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12", "npm": ">=6" diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 091cbe3d8c5..19466ef2f5b 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2029,8 +2029,8 @@ "@storybook/theming": "^8.6.12", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^16.1.0", - "@testing-library/user-event": "^14.5.2", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", "@types/cross-spawn": "^6.0.6", "@types/d3": "^7.4.0", "@types/d3-graphviz": "^2.6.6", From 55c808e1c2b71994ea78ab18601cf2f13231fb1b Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 18 Feb 2025 21:34:49 +0100 Subject: [PATCH 063/100] Destructure event object --- .../log-insights/performance-comparison.ts | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index 46634cf8bf3..d22fc14f578 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -97,14 +97,12 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { } onEvent(event: SummaryEvent): void { - if ( - event.completionType !== undefined && - event.completionType !== "SUCCESS" - ) { + const { completionType, evaluationStrategy, predicateName } = event; + if (completionType !== undefined && completionType !== "SUCCESS") { return; // Skip any evaluation that wasn't successful } - switch (event.evaluationStrategy) { + switch (evaluationStrategy) { case "EXTENSIONAL": case "COMPUTED_EXTENSIONAL": { break; @@ -113,26 +111,24 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { case "CACHACA": { // Record a cache hit, but only if the predicate has not been seen before. // We're mainly interested in the reuse of caches from an earlier query run as they can distort comparisons. - if (!this.nameToIndex.has(event.predicateName)) { - this.data.cacheHitIndices.push( - this.getPredicateIndex(event.predicateName), - ); + if (!this.nameToIndex.has(predicateName)) { + this.data.cacheHitIndices.push(this.getPredicateIndex(predicateName)); } break; } case "SENTINEL_EMPTY": { this.data.sentinelEmptyIndices.push( - this.getPredicateIndex(event.predicateName), + this.getPredicateIndex(predicateName), ); break; } case "COMPUTE_RECURSIVE": case "COMPUTE_SIMPLE": case "IN_LAYER": { - const index = this.getPredicateIndex(event.predicateName); + const index = this.getPredicateIndex(predicateName); let totalTime = 0; let totalTuples = 0; - if (event.evaluationStrategy !== "IN_LAYER") { + if (evaluationStrategy !== "IN_LAYER") { totalTime += event.millis; } else { // IN_LAYER events do no record of their total time. From 59e754e3c4292aca76474effd9f85e77caceaa2e Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Apr 2025 13:47:03 +0200 Subject: [PATCH 064/100] Avoid unhandled errors in build streams The .pipe() method on Node.js streams have a gotcha in that they do not propagate errors downstream. In this case this meant that if compilation failed with an error, it would not be visible to Gulp because Gulp only sees the stream that writes to a file, not the intermediate 'esbuild' stream that generated the error. This changes a few uses of .pipe() to the more modern stream.pipeline(), which propagates errors correctly. --- extensions/ql-vscode/gulpfile.ts/textmate.ts | 9 +++-- .../ql-vscode/gulpfile.ts/typescript.ts | 35 ++++++++++--------- extensions/ql-vscode/gulpfile.ts/view.ts | 35 ++++++++++--------- 3 files changed, 42 insertions(+), 37 deletions(-) diff --git a/extensions/ql-vscode/gulpfile.ts/textmate.ts b/extensions/ql-vscode/gulpfile.ts/textmate.ts index 0b7d2b88fac..8e061b440f9 100644 --- a/extensions/ql-vscode/gulpfile.ts/textmate.ts +++ b/extensions/ql-vscode/gulpfile.ts/textmate.ts @@ -9,6 +9,7 @@ import type { Pattern, TextmateGrammar, } from "./textmate-grammar"; +import { pipeline } from "stream/promises"; /** * Replaces all rule references with the match pattern of the referenced rule. @@ -276,7 +277,9 @@ export function transpileTextMateGrammar() { } export function compileTextMateGrammar() { - return src("syntaxes/*.tmLanguage.yml") - .pipe(transpileTextMateGrammar()) - .pipe(dest("out/syntaxes")); + return pipeline( + src("syntaxes/*.tmLanguage.yml"), + transpileTextMateGrammar(), + dest("out/syntaxes"), + ); } diff --git a/extensions/ql-vscode/gulpfile.ts/typescript.ts b/extensions/ql-vscode/gulpfile.ts/typescript.ts index c7f12785507..abd3591b096 100644 --- a/extensions/ql-vscode/gulpfile.ts/typescript.ts +++ b/extensions/ql-vscode/gulpfile.ts/typescript.ts @@ -4,6 +4,7 @@ import esbuild from "gulp-esbuild"; import type { reporter } from "gulp-typescript"; import { createProject } from "gulp-typescript"; import del from "del"; +import { pipeline } from "stream/promises"; export function goodReporter(): reporter.Reporter { return { @@ -37,23 +38,23 @@ export function cleanOutput() { } export function compileEsbuild() { - return src("./src/extension.ts") - .pipe( - esbuild({ - outfile: "extension.js", - bundle: true, - external: ["vscode", "fsevents"], - format: "cjs", - platform: "node", - target: "es2020", - sourcemap: "linked", - sourceRoot: "..", - loader: { - ".node": "copy", - }, - }), - ) - .pipe(dest("out")); + return pipeline( + src("./src/extension.ts"), + esbuild({ + outfile: "extension.js", + bundle: true, + external: ["vscode", "fsevents"], + format: "cjs", + platform: "node", + target: "es2020", + sourcemap: "linked", + sourceRoot: "..", + loader: { + ".node": "copy", + }, + }), + dest("out"), + ); } export function watchEsbuild() { diff --git a/extensions/ql-vscode/gulpfile.ts/view.ts b/extensions/ql-vscode/gulpfile.ts/view.ts index fea09031d70..698f39c113e 100644 --- a/extensions/ql-vscode/gulpfile.ts/view.ts +++ b/extensions/ql-vscode/gulpfile.ts/view.ts @@ -3,28 +3,29 @@ import esbuild from "gulp-esbuild"; import { createProject } from "gulp-typescript"; import { goodReporter } from "./typescript"; +import { pipeline } from "stream/promises"; import chromiumVersion from "./chromium-version.json"; const tsProject = createProject("src/view/tsconfig.json"); export function compileViewEsbuild() { - return src("./src/view/webview.tsx") - .pipe( - esbuild({ - outfile: "webview.js", - bundle: true, - format: "iife", - platform: "browser", - target: `chrome${chromiumVersion.chromiumVersion}`, - jsx: "automatic", - sourcemap: "linked", - sourceRoot: "..", - loader: { - ".ttf": "file", - }, - }), - ) - .pipe(dest("out")); + return pipeline( + src("./src/view/webview.tsx"), + esbuild({ + outfile: "webview.js", + bundle: true, + format: "iife", + platform: "browser", + target: `chrome${chromiumVersion.chromiumVersion}`, + jsx: "automatic", + sourcemap: "linked", + sourceRoot: "..", + loader: { + ".ttf": "file", + }, + }), + dest("out"), + ); } export function watchViewEsbuild() { From 5262dfd8a1eb6d098646fd756734894fe446338f Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Tue, 22 Apr 2025 07:37:36 -0700 Subject: [PATCH 065/100] Update codeql-config.yml Ensure `.github/workflows` is included in actions analysis. --- .github/codeql/codeql-config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml index 80657da5dd7..8f26ff1303d 100644 --- a/.github/codeql/codeql-config.yml +++ b/.github/codeql/codeql-config.yml @@ -8,6 +8,7 @@ queries: uses: ./.github/codeql/queries paths: - ./extensions/ql-vscode + - ./.github/workflows paths-ignore: - '**/node_modules' - '**/build' From 4e597544b90653a3f112ac6cbb197279119233f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 22 Apr 2025 14:56:45 +0000 Subject: [PATCH 066/100] Bump CLI version from v2.21.0 to v2.21.1 for integration tests --- extensions/ql-vscode/supported_cli_versions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/supported_cli_versions.json b/extensions/ql-vscode/supported_cli_versions.json index 82c2806ff0f..6547a021e56 100644 --- a/extensions/ql-vscode/supported_cli_versions.json +++ b/extensions/ql-vscode/supported_cli_versions.json @@ -1,5 +1,5 @@ [ - "v2.21.0", + "v2.21.1", "v2.20.7", "v2.19.4", "v2.18.4", From 3882e93f672c981d66efc7e8baa5f81ff2a2ce9d Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Tue, 22 Apr 2025 09:26:00 -0700 Subject: [PATCH 067/100] Update codeql-config.yml Add `.github/actions` as a folder to include. The folder doesn't exist at the moment, but it may in the future. --- .github/codeql/codeql-config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml index 8f26ff1303d..d2a6507d76b 100644 --- a/.github/codeql/codeql-config.yml +++ b/.github/codeql/codeql-config.yml @@ -9,6 +9,7 @@ queries: paths: - ./extensions/ql-vscode - ./.github/workflows + - ./.github/actions paths-ignore: - '**/node_modules' - '**/build' From 3dbe527d09a0828acdd7b204e467847168712dda Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 23 Apr 2025 10:45:23 +0200 Subject: [PATCH 068/100] Pin azure/login Action --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c2cc47f75e8..65fe95960a8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -147,7 +147,7 @@ jobs: name: vscode-codeql-extension - name: Azure User-assigned managed identity login - uses: azure/login@v2 + uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} From 5f37dc526102c8e4e1cbb29f56ea72a4d4434b43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:04:48 +0000 Subject: [PATCH 069/100] Bump the typescript-eslint group in /extensions/ql-vscode with 2 updates Bumps the typescript-eslint group in /extensions/ql-vscode with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.30.1 to 8.31.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.30.1 to 8.31.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.31.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.31.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 168 ++++++++++++------------- extensions/ql-vscode/package.json | 4 +- 2 files changed, 86 insertions(+), 86 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 28561888a8b..7af93487d8c 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -95,8 +95,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.30.1", - "@typescript-eslint/parser": "^8.30.1", + "@typescript-eslint/eslint-plugin": "^8.31.0", + "@typescript-eslint/parser": "^8.31.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", @@ -8005,17 +8005,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.30.1.tgz", - "integrity": "sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz", + "integrity": "sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.30.1", - "@typescript-eslint/type-utils": "8.30.1", - "@typescript-eslint/utils": "8.30.1", - "@typescript-eslint/visitor-keys": "8.30.1", + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/type-utils": "8.31.0", + "@typescript-eslint/utils": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -8035,14 +8035,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", - "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", + "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/visitor-keys": "8.30.1" + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8053,9 +8053,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", - "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", "dev": true, "license": "MIT", "engines": { @@ -8067,14 +8067,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", - "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", + "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/visitor-keys": "8.30.1", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8094,16 +8094,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz", - "integrity": "sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz", + "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.30.1", - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/typescript-estree": "8.30.1" + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8118,13 +8118,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", - "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/types": "8.31.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8329,16 +8329,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.30.1.tgz", - "integrity": "sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.0.tgz", + "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.30.1", - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/typescript-estree": "8.30.1", - "@typescript-eslint/visitor-keys": "8.30.1", + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "debug": "^4.3.4" }, "engines": { @@ -8354,14 +8354,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", - "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", + "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/visitor-keys": "8.30.1" + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8372,9 +8372,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", - "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", "dev": true, "license": "MIT", "engines": { @@ -8386,14 +8386,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", - "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", + "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/visitor-keys": "8.30.1", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8413,13 +8413,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", - "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/types": "8.31.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8500,14 +8500,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.30.1.tgz", - "integrity": "sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz", + "integrity": "sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.30.1", - "@typescript-eslint/utils": "8.30.1", + "@typescript-eslint/typescript-estree": "8.31.0", + "@typescript-eslint/utils": "8.31.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -8524,14 +8524,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", - "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", + "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/visitor-keys": "8.30.1" + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8542,9 +8542,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", - "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", "dev": true, "license": "MIT", "engines": { @@ -8556,14 +8556,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", - "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", + "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/visitor-keys": "8.30.1", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8583,16 +8583,16 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz", - "integrity": "sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz", + "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.30.1", - "@typescript-eslint/types": "8.30.1", - "@typescript-eslint/typescript-estree": "8.30.1" + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8607,13 +8607,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.30.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", - "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/types": "8.31.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 19466ef2f5b..21ec6062d08 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2053,8 +2053,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.30.1", - "@typescript-eslint/parser": "^8.30.1", + "@typescript-eslint/eslint-plugin": "^8.31.0", + "@typescript-eslint/parser": "^8.31.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", From d9074fa11e821ed8336cfb6efc1e05bc88b5f2c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:05:01 +0000 Subject: [PATCH 070/100] Bump eslint-plugin-prettier from 5.1.3 to 5.2.6 in /extensions/ql-vscode Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.1.3 to 5.2.6. - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.1.3...v5.2.6) --- updated-dependencies: - dependency-name: eslint-plugin-prettier dependency-version: 5.2.6 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 351 +++---------------------- extensions/ql-vscode/package.json | 2 +- 2 files changed, 35 insertions(+), 318 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 28561888a8b..9b65f9a75ce 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -113,7 +113,7 @@ "eslint-plugin-github": "^5.0.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jest-dom": "^5.5.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-storybook": "^0.8.0", @@ -5847,44 +5847,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@pkgr/utils": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", - "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", - "dev": true, - "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" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@pkgr/utils/node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", - "dev": true, - "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@playwright/test": { "version": "1.50.1", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.50.1.tgz", @@ -10151,15 +10113,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -10218,18 +10171,6 @@ "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -10367,21 +10308,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", - "dev": true, - "dependencies": { - "run-applescript": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", @@ -11891,156 +11817,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", - "dev": true, - "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "dev": true, - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "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" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/default-browser/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/default-browser/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/default-browser/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -12058,18 +11834,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", @@ -13243,13 +13007,14 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz", + "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" + "synckit": "^0.11.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -13260,7 +13025,7 @@ "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", - "eslint-config-prettier": "*", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", "prettier": ">=3.0.0" }, "peerDependenciesMeta": { @@ -15894,39 +15659,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dev": true, - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -24199,21 +23931,6 @@ "dev": true, "license": "MIT" }, - "node_modules/run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -25305,21 +25022,42 @@ "dev": true }, "node_modules/synckit": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz", - "integrity": "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", + "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==", "dev": true, + "license": "MIT", "dependencies": { - "@pkgr/utils": "^2.4.2", - "tslib": "^2.6.2" + "@pkgr/core": "^0.2.3", + "tslib": "^2.8.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/synckit" } }, + "node_modules/synckit/node_modules/@pkgr/core": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", + "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/synckit/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -25566,18 +25304,6 @@ "node": ">=14.0.0" } }, - "node_modules/titleize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/tldts": { "version": "6.1.85", "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.85.tgz", @@ -26464,15 +26190,6 @@ "node": ">=14.0.0" } }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 19466ef2f5b..ebf335b7506 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2071,7 +2071,7 @@ "eslint-plugin-github": "^5.0.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jest-dom": "^5.5.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-storybook": "^0.8.0", From be58c0ba5cc5345525b44a060a37f301357554ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:05:14 +0000 Subject: [PATCH 071/100] Bump ts-jest from 29.2.5 to 29.3.2 in /extensions/ql-vscode Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.2.5 to 29.3.2. - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.2.5...v29.3.2) --- updated-dependencies: - dependency-name: ts-jest dependency-version: 29.3.2 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 32 +++++++++++++++++++------- extensions/ql-vscode/package.json | 2 +- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 28561888a8b..bb0c0829a72 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -135,7 +135,7 @@ "storybook": "^8.6.12", "tar-stream": "^3.1.7", "through2": "^4.0.2", - "ts-jest": "^29.2.5", + "ts-jest": "^29.3.2", "ts-json-schema-generator": "^2.3.0", "ts-node": "^10.9.2", "ts-unused-exports": "^10.1.0", @@ -24389,9 +24389,10 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -25733,10 +25734,11 @@ } }, "node_modules/ts-jest": { - "version": "29.2.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", - "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "version": "29.3.2", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.2.tgz", + "integrity": "sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug==", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "ejs": "^3.1.10", @@ -25745,7 +25747,8 @@ "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.6.3", + "semver": "^7.7.1", + "type-fest": "^4.39.1", "yargs-parser": "^21.1.1" }, "bin": { @@ -25780,6 +25783,19 @@ } } }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.40.0.tgz", + "integrity": "sha512-ABHZ2/tS2JkvH1PEjxFDTUWC8dB5OsIGZP4IFLhR293GqT5Y5qB1WwL2kMPYhQW9DVgVD8Hd7I8gjwPIf5GFkw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ts-json-schema-generator": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-2.3.0.tgz", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 19466ef2f5b..3abda4b0cae 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2093,7 +2093,7 @@ "storybook": "^8.6.12", "tar-stream": "^3.1.7", "through2": "^4.0.2", - "ts-jest": "^29.2.5", + "ts-jest": "^29.3.2", "ts-json-schema-generator": "^2.3.0", "ts-node": "^10.9.2", "ts-unused-exports": "^10.1.0", From 37c53b6e254c06c26b0b9c360a820b08eee4ab89 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:48:46 +0000 Subject: [PATCH 072/100] Bump codercom/code-server in /extensions/ql-vscode/test/e2e/docker Bumps codercom/code-server from 4.99.2 to 4.99.3. --- updated-dependencies: - dependency-name: codercom/code-server dependency-version: 4.99.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/test/e2e/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/test/e2e/docker/Dockerfile b/extensions/ql-vscode/test/e2e/docker/Dockerfile index 36d576a89d1..83bac917677 100644 --- a/extensions/ql-vscode/test/e2e/docker/Dockerfile +++ b/extensions/ql-vscode/test/e2e/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM codercom/code-server:4.99.2 +FROM codercom/code-server:4.99.3 USER root From bcd72a9cec2b2e319c06aba1f4469d8ed4fc97b8 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Apr 2025 15:52:09 +0200 Subject: [PATCH 073/100] Do not use "millis" field for COMPUTE_RECURSIVE events --- .../ql-vscode/src/log-insights/performance-comparison.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index d22fc14f578..a906cf13136 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -128,11 +128,12 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { const index = this.getPredicateIndex(predicateName); let totalTime = 0; let totalTuples = 0; - if (evaluationStrategy !== "IN_LAYER") { + if (evaluationStrategy === "COMPUTE_SIMPLE") { totalTime += event.millis; } else { - // IN_LAYER events do no record of their total time. - // Make a best-effort estimate by adding up the positive iteration times (they can be negative). + // Make a best-effort estimate of the total time by adding up the positive iteration times (they can be negative). + // Note that for COMPUTE_RECURSIVE the "millis" field contain the total time of the SCC, not just that predicate, + // but we don't have a good way to show that in the UI, so we rely on the accumulated iteration times. for (const millis of event.predicateIterationMillis ?? []) { if (millis > 0) { totalTime += millis; From 06a2513a118412e45e08bf56ef9da242f3c401c9 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Apr 2025 15:58:18 +0200 Subject: [PATCH 074/100] Also handle NAMED_LOCAL event type --- .../ql-vscode/src/log-insights/log-summary.ts | 16 ++++++++++++++-- .../src/log-insights/performance-comparison.ts | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/extensions/ql-vscode/src/log-insights/log-summary.ts b/extensions/ql-vscode/src/log-insights/log-summary.ts index 5fa4bda58b8..fb6c8acff27 100644 --- a/extensions/ql-vscode/src/log-insights/log-summary.ts +++ b/extensions/ql-vscode/src/log-insights/log-summary.ts @@ -16,7 +16,8 @@ type EvaluationStrategy = | "EXTENSIONAL" | "SENTINEL_EMPTY" | "CACHACA" - | "CACHE_HIT"; + | "CACHE_HIT" + | "NAMED_LOCAL"; interface SummaryEventBase { evaluationStrategy: EvaluationStrategy; @@ -60,6 +61,16 @@ export interface InLayer extends ResultEventBase { predicateIterationMillis: number[]; } +export interface NamedLocal extends ResultEventBase { + evaluationStrategy: "NAMED_LOCAL"; + deltaSizes: number[]; + ra: Ra; + pipelineRuns: PipelineRun[]; + queryCausingWork?: string; + dependencies: { [key: string]: string }; + predicateIterationMillis: number[]; +} + interface ComputedExtensional extends ResultEventBase { evaluationStrategy: "COMPUTED_EXTENSIONAL"; queryCausingWork?: string; @@ -92,4 +103,5 @@ export type SummaryEvent = | Extensional | SentinelEmpty | Cachaca - | CacheHit; + | CacheHit + | NamedLocal; diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index a906cf13136..85d10410c30 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -124,6 +124,7 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { } case "COMPUTE_RECURSIVE": case "COMPUTE_SIMPLE": + case "NAMED_LOCAL": case "IN_LAYER": { const index = this.getPredicateIndex(predicateName); let totalTime = 0; From 116575294db1f31ccab12f2d29b334b4650c64fb Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Apr 2025 17:31:27 +0200 Subject: [PATCH 075/100] Associate predicate with their RA hash --- .../log-insights/performance-comparison.ts | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index 85d10410c30..d4368b5f0ef 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -27,6 +27,9 @@ export interface PerformanceComparisonDataFromLog { */ names: string[]; + /** RA hash of the `i`th predicate event */ + raHashes: string[]; + /** Number of milliseconds spent evaluating the `i`th predicate from the `names` array. */ timeCosts: number[]; @@ -56,9 +59,9 @@ export interface PerformanceComparisonDataFromLog { } export class PerformanceOverviewScanner implements EvaluationLogScanner { - private readonly nameToIndex = new Map(); private readonly data: PerformanceComparisonDataFromLog = { names: [], + raHashes: [], timeCosts: [], tupleCosts: [], cacheHitIndices: [], @@ -66,28 +69,33 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { pipelineSummaryList: [], evaluationCounts: [], iterationCounts: [], + dependencyLists: [], }; + private readonly raToIndex = new Map(); - private getPredicateIndex(name: string): number { - const { nameToIndex } = this; - let index = nameToIndex.get(name); + private getPredicateIndex(name: string, ra: string): number { + let index = this.raToIndex.get(ra); if (index === undefined) { - index = nameToIndex.size; - nameToIndex.set(name, index); + index = this.raToIndex.size; + this.raToIndex.set(ra, index); const { names, + raHashes, timeCosts, tupleCosts, iterationCounts, evaluationCounts, pipelineSummaryList, + dependencyLists, } = this.data; names.push(name); + raHashes.push(ra); timeCosts.push(0); tupleCosts.push(0); iterationCounts.push(0); evaluationCounts.push(0); pipelineSummaryList.push({}); + dependencyLists.push([]); } return index; } @@ -97,7 +105,7 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { } onEvent(event: SummaryEvent): void { - const { completionType, evaluationStrategy, predicateName } = event; + const { completionType, evaluationStrategy, predicateName, raHash } = event; if (completionType !== undefined && completionType !== "SUCCESS") { return; // Skip any evaluation that wasn't successful } @@ -111,14 +119,16 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { case "CACHACA": { // Record a cache hit, but only if the predicate has not been seen before. // We're mainly interested in the reuse of caches from an earlier query run as they can distort comparisons. - if (!this.nameToIndex.has(predicateName)) { - this.data.cacheHitIndices.push(this.getPredicateIndex(predicateName)); + if (!this.raToIndex.has(raHash)) { + this.data.cacheHitIndices.push( + this.getPredicateIndex(predicateName, raHash), + ); } break; } case "SENTINEL_EMPTY": { this.data.sentinelEmptyIndices.push( - this.getPredicateIndex(predicateName), + this.getPredicateIndex(predicateName, raHash), ); break; } @@ -126,7 +136,7 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { case "COMPUTE_SIMPLE": case "NAMED_LOCAL": case "IN_LAYER": { - const index = this.getPredicateIndex(predicateName); + const index = this.getPredicateIndex(predicateName, raHash); let totalTime = 0; let totalTuples = 0; if (evaluationStrategy === "COMPUTE_SIMPLE") { From 6329d239edf16fc9582c7dc082af03b17d386d38 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Apr 2025 17:31:52 +0200 Subject: [PATCH 076/100] Store dependencies of predicates --- extensions/ql-vscode/src/log-insights/log-summary.ts | 2 +- .../src/log-insights/performance-comparison.ts | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/log-insights/log-summary.ts b/extensions/ql-vscode/src/log-insights/log-summary.ts index fb6c8acff27..d8723bc8a5b 100644 --- a/extensions/ql-vscode/src/log-insights/log-summary.ts +++ b/extensions/ql-vscode/src/log-insights/log-summary.ts @@ -29,6 +29,7 @@ interface SummaryEventBase { interface ResultEventBase extends SummaryEventBase { resultSize: number; + dependencies?: { [key: string]: string }; } export interface ComputeSimple extends ResultEventBase { @@ -67,7 +68,6 @@ export interface NamedLocal extends ResultEventBase { ra: Ra; pipelineRuns: PipelineRun[]; queryCausingWork?: string; - dependencies: { [key: string]: string }; predicateIterationMillis: number[]; } diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index d4368b5f0ef..72f38bae942 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -56,6 +56,9 @@ export interface PerformanceComparisonDataFromLog { * All the pipeline runs seen for the `i`th predicate from the `names` array. */ pipelineSummaryList: Array>; + + /** All dependencies of the `i`th predicate from the `names` array, encoded as a list of indices in `names`. */ + dependencyLists: number[][]; } export class PerformanceOverviewScanner implements EvaluationLogScanner { @@ -157,8 +160,10 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { iterationCounts, evaluationCounts, pipelineSummaryList, + dependencyLists, } = this.data; const pipelineSummaries = pipelineSummaryList[index]; + const dependencyList = dependencyLists[index]; for (const { counts, raReference } of event.pipelineRuns ?? []) { // Get or create the pipeline summary for this RA const pipelineSummary = (pipelineSummaries[raReference] ??= { @@ -178,6 +183,12 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { totalTuplesPerStep[i] += count; } } + for (const dependencyHash of Object.values(event.dependencies ?? {})) { + const dependencyIndex = this.raToIndex.get(dependencyHash); + if (dependencyIndex != null) { + dependencyList.push(dependencyIndex); + } + } timeCosts[index] += totalTime; tupleCosts[index] += totalTuples; iterationCounts[index] += event.pipelineRuns?.length ?? 0; From 12a342efeacde7e019f3f315091cac9bd9cc656d Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 23 Apr 2025 00:13:31 +0200 Subject: [PATCH 077/100] Record implicit dependency for 'cached' predicates --- .../src/log-insights/performance-comparison.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index 72f38bae942..5211693c78e 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -75,6 +75,7 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { dependencyLists: [], }; private readonly raToIndex = new Map(); + private readonly nameToIndex = new Map(); private getPredicateIndex(name: string, ra: string): number { let index = this.raToIndex.get(ra); @@ -114,8 +115,21 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { } switch (evaluationStrategy) { - case "EXTENSIONAL": + case "EXTENSIONAL": { + break; + } case "COMPUTED_EXTENSIONAL": { + if (predicateName.startsWith("cached_")) { + // Add a dependency from a cached COMPUTED_EXTENSIONAL to the predicate with the actual contents. + // The raHash of the this event may appear in a CACHE_HIT events in the other event log. The dependency + // we're adding here is needed in order to associate the original predicate with such a cache hit. + const originalName = predicateName.substring("cached_".length); + const originalIndex = this.nameToIndex.get(originalName); + if (originalIndex != null) { + const index = this.getPredicateIndex(predicateName, raHash); + this.data.dependencyLists[index].push(originalIndex); + } + } break; } case "CACHE_HIT": @@ -140,6 +154,7 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { case "NAMED_LOCAL": case "IN_LAYER": { const index = this.getPredicateIndex(predicateName, raHash); + this.nameToIndex.set(predicateName, index); let totalTime = 0; let totalTuples = 0; if (evaluationStrategy === "COMPUTE_SIMPLE") { From 833f67971de8d68570f5fe769a566d042a6dc2f1 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 23 Apr 2025 10:27:12 +0200 Subject: [PATCH 078/100] Record dependencies from sentinels --- .../ql-vscode/src/log-insights/performance-comparison.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index 5211693c78e..4a034cdcbba 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -144,9 +144,12 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { break; } case "SENTINEL_EMPTY": { - this.data.sentinelEmptyIndices.push( - this.getPredicateIndex(predicateName, raHash), - ); + const index = this.getPredicateIndex(predicateName, raHash); + this.data.sentinelEmptyIndices.push(index); + const sentinelIndex = this.raToIndex.get(event.sentinelRaHash); + if (sentinelIndex != null) { + this.data.dependencyLists[index].push(sentinelIndex); // needed for matching up cache hits + } break; } case "COMPUTE_RECURSIVE": From 570f63e731d882594ad2e88ae08402079e2b058e Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 23 Apr 2025 10:27:26 +0200 Subject: [PATCH 079/100] Record dependencies inside SCCs --- .../ql-vscode/src/log-insights/log-summary.ts | 1 + .../src/log-insights/performance-comparison.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/extensions/ql-vscode/src/log-insights/log-summary.ts b/extensions/ql-vscode/src/log-insights/log-summary.ts index d8723bc8a5b..31e582a06bc 100644 --- a/extensions/ql-vscode/src/log-insights/log-summary.ts +++ b/extensions/ql-vscode/src/log-insights/log-summary.ts @@ -30,6 +30,7 @@ interface SummaryEventBase { interface ResultEventBase extends SummaryEventBase { resultSize: number; dependencies?: { [key: string]: string }; + mainHash?: string; } export interface ComputeSimple extends ResultEventBase { diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index 4a034cdcbba..f04d7cc3cbb 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -75,6 +75,7 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { dependencyLists: [], }; private readonly raToIndex = new Map(); + private readonly mainHashToRepr = new Map(); private readonly nameToIndex = new Map(); private getPredicateIndex(name: string, ra: string): number { @@ -207,6 +208,19 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { dependencyList.push(dependencyIndex); } } + // For predicates in the same SCC, add two-way dependencies with an arbitrary SCC member + const sccHash = + event.mainHash ?? + (evaluationStrategy === "COMPUTE_RECURSIVE" ? raHash : null); + if (sccHash != null) { + const mainIndex = this.mainHashToRepr.get(sccHash); + if (mainIndex == null) { + this.mainHashToRepr.set(sccHash, index); + } else { + dependencyLists[index].push(mainIndex); + dependencyLists[mainIndex].push(index); + } + } timeCosts[index] += totalTime; tupleCosts[index] += totalTuples; iterationCounts[index] += event.pipelineRuns?.length ?? 0; From c72457785e43b26055dad077408fbc5b3602bc06 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Apr 2025 17:32:16 +0200 Subject: [PATCH 080/100] Store pipeline hash on PipelineSummary --- .../src/log-insights/performance-comparison.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index f04d7cc3cbb..2922951479b 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -1,3 +1,4 @@ +import { createHash } from "crypto"; import type { EvaluationLogScanner } from "./log-scanner"; import type { SummaryEvent } from "./log-summary"; @@ -5,6 +6,7 @@ export interface PipelineSummary { steps: string[]; /** Total counts for each step in the RA array, across all iterations */ counts: number[]; + hash: string; } /** @@ -188,6 +190,7 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { const pipelineSummary = (pipelineSummaries[raReference] ??= { steps: event.ra[raReference], counts: counts.map(() => 0), + hash: getPipelineHash(event.ra[raReference]), }); const { counts: totalTuplesPerStep } = pipelineSummary; for (let i = 0, length = counts.length; i < length; ++i) { @@ -232,3 +235,11 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { onDone(): void {} } + +function getPipelineHash(steps: string[]) { + const md5 = createHash("md5"); + for (const step of steps) { + md5.write(step); + } + return md5.digest("base64"); +} From e8bf7e3ccd7c263b9f346ad60c3fa2d216698019 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 25 Apr 2025 10:36:58 +0200 Subject: [PATCH 081/100] Associate rows with RA-hash and a name-with-pipeline hash --- .../ComparePerformance.tsx | 66 ++++++++++++++----- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx index 5708b65faf0..9bc38bc5c25 100644 --- a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx +++ b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx @@ -35,6 +35,8 @@ function isPresent(x: Optional): x is T { } interface PredicateInfo { + name: string; + raHash: string; tuples: number; evaluationCount: number; iterationCount: number; @@ -43,23 +45,37 @@ interface PredicateInfo { } class ComparisonDataset { + /** + * Predicates indexed by a key consisting of the name and its pipeline hash. + * Unlike the RA hash, the pipeline hash only depends on the predicate's own pipeline. + */ + public keyToIndex = new Map(); + public raToIndex = new Map(); public nameToIndex = new Map(); public cacheHitIndices: Set; public sentinelEmptyIndices: Set; - constructor(public data: PerformanceComparisonDataFromLog) { - const { names } = data; - const { nameToIndex } = this; + constructor(private data: PerformanceComparisonDataFromLog) { + const { names, raHashes, pipelineSummaryList } = data; + const { keyToIndex, raToIndex, nameToIndex } = this; for (let i = 0; i < names.length; i++) { - nameToIndex.set(names[i], i); + const name = names[i]; + const pipelineHash = getPipelineSummaryHash(pipelineSummaryList[i]); + keyToIndex.set(`${name}@${pipelineHash}`, i); + nameToIndex.set(name, i); + raToIndex.set(raHashes[i], i); } this.cacheHitIndices = new Set(data.cacheHitIndices); this.sentinelEmptyIndices = new Set(data.sentinelEmptyIndices); } - getTupleCountInfo(name: string): Optional { - const { data, nameToIndex, cacheHitIndices, sentinelEmptyIndices } = this; - const index = nameToIndex.get(name); + keys() { + return Array.from(this.keyToIndex.keys()); + } + + getTupleCountInfo(key: string): Optional { + const { data, keyToIndex, cacheHitIndices, sentinelEmptyIndices } = this; + const index = keyToIndex.get(key); if (index == null) { return AbsentReason.NotSeen; } @@ -72,6 +88,8 @@ class ComparisonDataset { } } return { + name: data.names[index], + raHash: data.raHashes[index], evaluationCount: data.evaluationCounts[index], iterationCount: data.iterationCounts[index], timeCost: data.timeCosts[index], @@ -336,6 +354,7 @@ function HighLevelStats(props: HighLevelStatsProps) { } interface Row { + key: string; name: string; before: Optional; after: Optional; @@ -480,19 +499,16 @@ function ComparePerformanceWithData(props: { const [isPerEvaluation, setPerEvaluation] = useState(false); - const nameSet = useMemo( - () => union(from.data.names, to.data.names), - [from, to], - ); + const keySet = useMemo(() => union(from.keys(), to.keys()), [from, to]); const hasCacheHitMismatch = useRef(false); const rows: Row[] = useMemo(() => { hasCacheHitMismatch.current = false; - return Array.from(nameSet) - .map((name) => { - const before = from.getTupleCountInfo(name); - const after = to.getTupleCountInfo(name); + return Array.from(keySet) + .map((key) => { + const before = from.getTupleCountInfo(key); + const after = to.getTupleCountInfo(key); const beforeValue = metricGetOptional(metric, before, isPerEvaluation); const afterValue = metricGetOptional(metric, after, isPerEvaluation); if (beforeValue === afterValue) { @@ -510,11 +526,16 @@ function ComparePerformanceWithData(props: { const diff = (isPresent(afterValue) ? afterValue : 0) - (isPresent(beforeValue) ? beforeValue : 0); - return { name, before, after, diff } satisfies Row; + const name = isPresent(before) + ? before.name + : isPresent(after) + ? after.name + : key; + return { key, name, before, after, diff } satisfies Row; }) .filter((x) => !!x) .sort(getSortOrder(sortOrder)); - }, [nameSet, from, to, metric, hideCacheHits, sortOrder, isPerEvaluation]); + }, [keySet, from, to, metric, hideCacheHits, sortOrder, isPerEvaluation]); const { totalBefore, totalAfter, totalDiff } = useMemo(() => { let totalBefore = 0; @@ -860,3 +881,14 @@ function collatePipelines( function samePipeline(a: string[], b: string[]) { return a.length === b.length && a.every((x, i) => x === b[i]); } + +function getPipelineSummaryHash(pipelines: Record) { + // Note: we can't import "crypto" here because it is not available in the browser, + // so we just concatenate the hashes of the individual pipelines. + const keys = Object.keys(pipelines).sort(); + let result = ""; + for (const key of keys) { + result += `${pipelines[key].hash};`; + } + return result; +} From 06fcd6fc47454092a249396c23d03c4199eb6a9b Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 25 Apr 2025 10:56:46 +0200 Subject: [PATCH 082/100] Detect "shadowed" cache hits --- .../ComparePerformance.tsx | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx index 9bc38bc5c25..cb5aaf43f7f 100644 --- a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx +++ b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx @@ -97,6 +97,75 @@ class ComparisonDataset { pipelines: data.pipelineSummaryList[index], }; } + + /** + * Returns the RA hashes of all predicates that were evaluated in this data set, but not seen in `other`, + * because in `other` the dependency upon these predicates was cut off by a cache hit. + * + * For example, suppose predicate `A` depends on `B`, which depends on `C`, and the + * predicates were evaluated in the first log but not the second: + * ``` + * first eval. log second eval. log + * predicate A seen evaluation seen cache hit + * | + * V + * predicate B seen evaluation not seen + * | + * V + * predicate C seen evaluation not seen + * ``` + * + * To ensure a meaningful comparison, we want to omit `predicate A` from the comparison view because of the cache hit. + * + * But predicates B and C did not have a recorded cache hit in the second log, because they were never scheduled for evaluation. + * Given the dependency graph, the most likely explanation is that they would have been evaluated if `A` had not been a cache hit. + * We therefore say that B and C are "shadowed" by the cache hit on A. + * + * The dependency graph is only visible in the first evaluation log, because `B` and `C` do not exist in the second log. + * So to compute this, we use the dependency graph from one log together with the set of cache hits in the other log. + */ + getPredicatesShadowedByCacheHit(other: ComparisonDataset) { + const { + data: { dependencyLists, raHashes, names }, + raToIndex, + } = this; + const cacheHits = new Set(); + + function visit(index: number, raHash: string) { + if (cacheHits.has(raHash)) { + return; + } + cacheHits.add(raHash); + const dependencies = dependencyLists[index]; + for (const dep of dependencies) { + const name = names[dep]; + if (!other.nameToIndex.has(name)) { + visit(dep, raHashes[dep]); + } + } + } + + for (const otherCacheHit of other.cacheHitIndices) { + { + // Look up by RA hash + const raHash = other.data.raHashes[otherCacheHit]; + const ownIndex = raToIndex.get(raHash); + if (ownIndex != null) { + visit(ownIndex, raHash); + } + } + { + // Look up by name + const name = other.data.names[otherCacheHit]; + const ownIndex = this.nameToIndex.get(name); + if (ownIndex != null) { + visit(ownIndex, this.data.raHashes[ownIndex]); + } + } + } + + return cacheHits; + } } function renderOptionalValue(x: Optional, unit: string | undefined) { @@ -503,6 +572,17 @@ function ComparePerformanceWithData(props: { const hasCacheHitMismatch = useRef(false); + const shadowedCacheHitsFrom = useMemo( + () => + hideCacheHits ? from.getPredicatesShadowedByCacheHit(to) : new Set(), + [from, to, hideCacheHits], + ); + const shadowedCacheHitsTo = useMemo( + () => + hideCacheHits ? to.getPredicatesShadowedByCacheHit(from) : new Set(), + [from, to, hideCacheHits], + ); + const rows: Row[] = useMemo(() => { hasCacheHitMismatch.current = false; return Array.from(keySet) @@ -523,6 +603,16 @@ function ComparePerformanceWithData(props: { return undefined!; } } + if ( + (isPresent(before) && + !isPresent(after) && + shadowedCacheHitsFrom.has(before.raHash)) || + (isPresent(after) && + !isPresent(before) && + shadowedCacheHitsTo.has(after.raHash)) + ) { + return undefined!; + } const diff = (isPresent(afterValue) ? afterValue : 0) - (isPresent(beforeValue) ? beforeValue : 0); From e718ea630c36c253846be585f2d14a4768e54874 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 25 Apr 2025 11:07:46 +0200 Subject: [PATCH 083/100] Default to hiding cache hits, and omit warning The warning doesn't seem necessary anymore since shadowed cache hits are detected now --- .../ComparePerformance.tsx | 29 +++++++------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx index cb5aaf43f7f..ea787de13d7 100644 --- a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx +++ b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx @@ -18,7 +18,7 @@ import type { } from "../../log-insights/performance-comparison"; import { formatDecimal } from "../../common/number"; import { styled } from "styled-components"; -import { Codicon, ViewTitle, WarningBox } from "../common"; +import { Codicon, ViewTitle } from "../common"; import { abbreviateRANames, abbreviateRASteps } from "./RAPrettyPrinter"; import { Renaming, RenamingInput } from "./RenamingInput"; @@ -560,7 +560,7 @@ function ComparePerformanceWithData(props: { const comparison = data?.comparison; - const [hideCacheHits, setHideCacheHits] = useState(false); + const [hideCacheHits, setHideCacheHits] = useState(true); const [sortOrder, setSortOrder] = useState<"delta" | "absDelta">("absDelta"); @@ -686,23 +686,14 @@ function ComparePerformanceWithData(props: { <> Performance comparison {comparison && hasCacheHitMismatch.current && ( - - Inconsistent cache hits -
- Some predicates had a cache hit on one side but not the other. For - more accurate results, try running the{" "} - CodeQL: Clear Cache command before each query. -
-
- -
+ )} Compare{" "} From 0da5e5b7574cf62b11ebdd77d605c18733974ead Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 25 Apr 2025 11:41:38 +0200 Subject: [PATCH 084/100] Update dependencies passed to useMemo --- .../view/compare-performance/ComparePerformance.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx index ea787de13d7..5e015c25b23 100644 --- a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx +++ b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx @@ -625,7 +625,17 @@ function ComparePerformanceWithData(props: { }) .filter((x) => !!x) .sort(getSortOrder(sortOrder)); - }, [keySet, from, to, metric, hideCacheHits, sortOrder, isPerEvaluation]); + }, [ + keySet, + from, + to, + metric, + hideCacheHits, + sortOrder, + isPerEvaluation, + shadowedCacheHitsFrom, + shadowedCacheHitsTo, + ]); const { totalBefore, totalAfter, totalDiff } = useMemo(() => { let totalBefore = 0; From a1552894fb4f24cea00fcb41b22f1d12c4ed1c50 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Thu, 24 Apr 2025 12:55:33 +0000 Subject: [PATCH 085/100] Actually report bad join orders in recursions --- .../ql-vscode/src/log-insights/join-order.ts | 167 +++++++----------- .../src/log-insights/log-scanner-service.ts | 30 +++- .../ql-vscode/src/log-insights/log-scanner.ts | 22 ++- .../src/log-insights/summary-parser.ts | 6 + 4 files changed, 114 insertions(+), 111 deletions(-) diff --git a/extensions/ql-vscode/src/log-insights/join-order.ts b/extensions/ql-vscode/src/log-insights/join-order.ts index 788da0a98e6..26d6aa2fda4 100644 --- a/extensions/ql-vscode/src/log-insights/join-order.ts +++ b/extensions/ql-vscode/src/log-insights/join-order.ts @@ -19,23 +19,6 @@ function safeMax(it?: Iterable) { return Number.isFinite(m) ? m : 0; } -/** - * Compute a key for the maps that that is sent to report generation. - * Should only be used on events that are known to define queryCausingWork. - */ -function makeKey( - queryCausingWork: string | undefined, - predicate: string, - suffix = "", -): string { - if (queryCausingWork === undefined) { - throw new Error( - "queryCausingWork was not defined on an event we expected it to be defined for!", - ); - } - return `${queryCausingWork}:${predicate}${suffix ? ` ${suffix}` : ""}`; -} - function getDependentPredicates(operations: string[]): string[] { const id = String.raw`[0-9a-zA-Z:#_\./]+`; const idWithAngleBrackets = String.raw`[0-9a-zA-Z:#_<>\./]+`; @@ -128,14 +111,6 @@ function pointwiseSum( return result; } -function pushValue(m: Map, k: K, v: V) { - if (!m.has(k)) { - m.set(k, []); - } - m.get(k)!.push(v); - return m; -} - function computeJoinOrderBadness( maxTupleCount: number, maxDependentPredicateSize: number, @@ -161,11 +136,6 @@ class JoinOrderScanner implements EvaluationLogScanner { string, Array >(); - // Map a key of the form 'query-with-demand : predicate name' to its badness input. - private readonly maxTupleCountMap = new Map(); - private readonly resultSizeMap = new Map(); - private readonly maxDependentPredicateSizeMap = new Map(); - private readonly joinOrderMetricMap = new Map(); constructor( private readonly problemReporter: EvaluationLogProblemReporter, @@ -216,27 +186,6 @@ class JoinOrderScanner implements EvaluationLogScanner { } } - private reportProblemIfNecessary( - event: SummaryEvent, - iteration: number, - metric: number, - ): void { - if (metric >= this.warningThreshold) { - this.problemReporter.reportProblem( - event.predicateName, - event.raHash, - iteration, - `Relation '${ - event.predicateName - }' has an inefficient join order. Its join order metric is ${metric.toFixed( - 2, - )}, which is larger than the threshold of ${this.warningThreshold.toFixed( - 2, - )}.`, - ); - } - } - private computeBadnessMetric(event: SummaryEvent): void { if ( event.completionType !== undefined && @@ -252,7 +201,6 @@ class JoinOrderScanner implements EvaluationLogScanner { } // Compute the badness metric for a non-recursive predicate. The metric in this case is defined as: // badness = (max tuple count in the pipeline) / (largest predicate this pipeline depends on) - const key = makeKey(event.queryCausingWork, event.predicateName); const resultSize = event.resultSize; // There is only one entry in `pipelineRuns` if it's a non-recursive predicate. @@ -260,20 +208,25 @@ class JoinOrderScanner implements EvaluationLogScanner { this.badnessInputsForNonRecursiveDelta(event.pipelineRuns[0], event); if (maxDependentPredicateSize > 0) { - pushValue(this.maxTupleCountMap, key, maxTupleCount); - pushValue(this.resultSizeMap, key, resultSize); - pushValue( - this.maxDependentPredicateSizeMap, - key, - maxDependentPredicateSize, - ); const metric = computeJoinOrderBadness( maxTupleCount, maxDependentPredicateSize, resultSize!, ); - this.joinOrderMetricMap.set(key, metric); - this.reportProblemIfNecessary(event, 0, metric); + if (metric >= this.warningThreshold) { + const message = `'${ + event.predicateName + }' has an inefficient join order. Its join order metric is ${metric.toFixed( + 2, + )}, which is larger than the threshold of ${this.warningThreshold.toFixed( + 2, + )}.`; + this.problemReporter.reportProblemNonRecursive( + event.predicateName, + event.raHash, + message, + ); + } } break; } @@ -282,39 +235,39 @@ class JoinOrderScanner implements EvaluationLogScanner { // Compute the badness metric for a recursive predicate for each ordering. const sccMetricInput = this.badnessInputsForRecursiveDelta(event); // Loop through each predicate in the SCC - sccMetricInput.forEach((buckets, predicate) => { - // Loop through each ordering of the predicate - buckets.forEach((bucket, raReference) => { - // Format the key as demanding-query:name (ordering) - const key = makeKey( - event.queryCausingWork, - predicate, - `(${raReference})`, - ); - const maxTupleCount = Math.max(...bucket.tupleCounts); - const resultSize = bucket.resultSize; - const maxDependentPredicateSize = Math.max( - ...bucket.dependentPredicateSizes.values(), - ); - - if (maxDependentPredicateSize > 0) { - pushValue(this.maxTupleCountMap, key, maxTupleCount); - pushValue(this.resultSizeMap, key, resultSize); - pushValue( - this.maxDependentPredicateSizeMap, - key, - maxDependentPredicateSize, + sccMetricInput.forEach((hashToOrderToBucket, predicateName) => { + hashToOrderToBucket.forEach((orderToBucket, raHash) => { + // Loop through each ordering of the predicate. + orderToBucket.forEach((bucket, raReference) => { + const maxDependentPredicateSize = Math.max( + ...bucket.dependentPredicateSizes.values(), ); - const metric = computeJoinOrderBadness( - maxTupleCount, - maxDependentPredicateSize, - resultSize, - ); - const oldMetric = this.joinOrderMetricMap.get(key); - if (oldMetric === undefined || metric > oldMetric) { - this.joinOrderMetricMap.set(key, metric); + + if (maxDependentPredicateSize > 0) { + const maxTupleCount = Math.max(...bucket.tupleCounts); + const resultSize = bucket.resultSize; + const metric = computeJoinOrderBadness( + maxTupleCount, + maxDependentPredicateSize, + resultSize, + ); + if (metric >= this.warningThreshold) { + const message = `The ${raReference} pipeline for '${ + predicateName + }' has an inefficient join order. Its join order metric is ${metric.toFixed( + 2, + )}, which is larger than the threshold of ${this.warningThreshold.toFixed( + 2, + )}.`; + this.problemReporter.reportProblemForRecursionSummary( + predicateName, + raHash, + raReference, + message, + ); + } } - } + }); }); }); break; @@ -457,20 +410,28 @@ class JoinOrderScanner implements EvaluationLogScanner { */ private badnessInputsForRecursiveDelta( event: ComputeRecursive, - ): Map> { - // nameToOrderToBucket : predicate name -> ordering (i.e., standard, order_500000, etc.) -> bucket - const nameToOrderToBucket = new Map>(); + ): Map>> { + // nameToHashToOrderToBucket : predicate name -> RA hash -> ordering (i.e., standard, order_500000, etc.) -> bucket + const nameToHashToOrderToBucket = new Map< + string, + Map> + >(); // Iterate through the SCC and compute the metric inputs this.iterateSCC(event, (inLayerEvent, run, iteration) => { const raReference = run.raReference; const predicateName = inLayerEvent.predicateName; - if (!nameToOrderToBucket.has(predicateName)) { - nameToOrderToBucket.set(predicateName, new Map()); + if (!nameToHashToOrderToBucket.has(predicateName)) { + nameToHashToOrderToBucket.set(predicateName, new Map()); + } + const hashToOrderToBucket = nameToHashToOrderToBucket.get(predicateName)!; + const raHash = inLayerEvent.raHash; + if (!hashToOrderToBucket.has(raHash)) { + hashToOrderToBucket.set(raHash, new Map()); } - const orderTobucket = nameToOrderToBucket.get(predicateName)!; - if (!orderTobucket.has(raReference)) { - orderTobucket.set(raReference, { + const orderToBucket = hashToOrderToBucket.get(raHash)!; + if (!orderToBucket.has(raReference)) { + orderToBucket.set(raReference, { tupleCounts: new Int32Array(0), resultSize: 0, dependentPredicateSizes: new Map(), @@ -484,7 +445,7 @@ class JoinOrderScanner implements EvaluationLogScanner { iteration, ); - const bucket = orderTobucket.get(raReference)!; + const bucket = orderToBucket.get(raReference)!; // Pointwise sum the tuple counts const newTupleCounts = pointwiseSum( bucket.tupleCounts, @@ -504,13 +465,13 @@ class JoinOrderScanner implements EvaluationLogScanner { ); } - orderTobucket.set(raReference, { + orderToBucket.set(raReference, { tupleCounts: newTupleCounts, resultSize, dependentPredicateSizes: newDependentPredicateSizes, }); }); - return nameToOrderToBucket; + return nameToHashToOrderToBucket; } } diff --git a/extensions/ql-vscode/src/log-insights/log-scanner-service.ts b/extensions/ql-vscode/src/log-insights/log-scanner-service.ts index 3d78bb30aa8..df59dc3b61c 100644 --- a/extensions/ql-vscode/src/log-insights/log-scanner-service.ts +++ b/extensions/ql-vscode/src/log-insights/log-scanner-service.ts @@ -28,17 +28,41 @@ class ProblemReporter implements EvaluationLogProblemReporter { constructor(private readonly symbols: SummarySymbols | undefined) {} - public reportProblem( + public reportProblemNonRecursive( predicateName: string, raHash: string, - iteration: number, message: string, ): void { const nameWithHash = predicateSymbolKey(predicateName, raHash); const predicateSymbol = this.symbols?.predicates[nameWithHash]; let predicateInfo: PipelineInfo | undefined = undefined; if (predicateSymbol !== undefined) { - predicateInfo = predicateSymbol.iterations[iteration]; + predicateInfo = predicateSymbol.iterations[0]; + } + if (predicateInfo !== undefined) { + const range = new Range( + predicateInfo.raStartLine, + 0, + predicateInfo.raEndLine + 1, + 0, + ); + this.diagnostics.push( + new Diagnostic(range, message, DiagnosticSeverity.Error), + ); + } + } + + public reportProblemForRecursionSummary( + predicateName: string, + raHash: string, + order: string, + message: string, + ): void { + const nameWithHash = predicateSymbolKey(predicateName, raHash); + const predicateSymbol = this.symbols?.predicates[nameWithHash]; + let predicateInfo: PipelineInfo | undefined = undefined; + if (predicateSymbol !== undefined) { + predicateInfo = predicateSymbol.recursionSummaries[order]; } if (predicateInfo !== undefined) { const range = new Range( diff --git a/extensions/ql-vscode/src/log-insights/log-scanner.ts b/extensions/ql-vscode/src/log-insights/log-scanner.ts index 0ad775e6ec1..1105aeb915d 100644 --- a/extensions/ql-vscode/src/log-insights/log-scanner.ts +++ b/extensions/ql-vscode/src/log-insights/log-scanner.ts @@ -8,18 +8,30 @@ import type { SummaryEvent } from "./log-summary"; */ export interface EvaluationLogProblemReporter { /** - * Report a potential problem detected in the evaluation log. + * Report a potential problem detected in the evaluation log for a non-recursive predicate. * * @param predicateName The mangled name of the predicate with the problem. * @param raHash The RA hash of the predicate with the problem. - * @param iteration The iteration number with the problem. For a non-recursive predicate, this - * must be zero. * @param message The problem message. */ - reportProblem( + reportProblemNonRecursive( predicateName: string, raHash: string, - iteration: number, + message: string, + ): void; + + /** + * Report a potential problem detected in the evaluation log for the summary of a recursive pipeline. + * + * @param predicateName The mangled name of the predicate with the problem. + * @param raHash The RA hash of the predicate with the problem. + * @param order The particular order (pipeline name) that had the problem. + * @param message The problem message. + */ + reportProblemForRecursionSummary( + predicateName: string, + raHash: string, + order: string, message: string, ): void; diff --git a/extensions/ql-vscode/src/log-insights/summary-parser.ts b/extensions/ql-vscode/src/log-insights/summary-parser.ts index 6a42efca187..f00923e53ea 100644 --- a/extensions/ql-vscode/src/log-insights/summary-parser.ts +++ b/extensions/ql-vscode/src/log-insights/summary-parser.ts @@ -18,6 +18,11 @@ interface PredicateSymbol { * `PipelineInfo` for each iteration. A non-recursive predicate will have a single iteration `0`. */ iterations: Record; + + /** + * `PipelineInfo` for each order, summarised for all iterations that used that order. Empty for non-recursive predicates. + */ + recursionSummaries: Record; } /** @@ -105,6 +110,7 @@ async function generateSummarySymbols( if (symbol === undefined) { symbol = { iterations: {}, + recursionSummaries: {}, }; symbols.predicates[predicateName] = symbol; } From dba5150d673f9c6053c0e870b8cc1ccc35da9aa6 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Fri, 25 Apr 2025 10:57:29 +0000 Subject: [PATCH 086/100] Fix join-order scoring for recursive predicates The evaluator log summary JSON needs to be read in two passes, to avoid trying to calculate scores for a recursive layer before all the events for it have been processed. Doing it in one pass meant that, for predicates associated with an IN_LAYER event that came after the corresponding COMPUTE_RECURSIVE event, we were missing their delta sizes and were not even attempting to their join-order scores. I had to remove some of the generic machinery for registering log processors, but the JoinOrderScanner was the only processor being registered anyway. --- .../compare-performance-view.ts | 19 ++- extensions/ql-vscode/src/extension.ts | 7 -- .../ql-vscode/src/log-insights/join-order.ts | 76 ++++++------ .../src/log-insights/log-scanner-service.ts | 12 +- .../ql-vscode/src/log-insights/log-scanner.ts | 113 ------------------ .../log-insights/performance-comparison.ts | 5 +- .../bad-join-order.jsonl | 2 +- .../test/unit-tests/log-scanner.test.ts | 49 +++++--- 8 files changed, 100 insertions(+), 183 deletions(-) diff --git a/extensions/ql-vscode/src/compare-performance/compare-performance-view.ts b/extensions/ql-vscode/src/compare-performance/compare-performance-view.ts index c1633801ed6..a59367ea135 100644 --- a/extensions/ql-vscode/src/compare-performance/compare-performance-view.ts +++ b/extensions/ql-vscode/src/compare-performance/compare-performance-view.ts @@ -16,8 +16,9 @@ import { withProgress } from "../common/vscode/progress"; import { telemetryListener } from "../common/vscode/telemetry"; import type { HistoryItemLabelProvider } from "../query-history/history-item-label-provider"; import { PerformanceOverviewScanner } from "../log-insights/performance-comparison"; -import { scanLog } from "../log-insights/log-scanner"; import type { ResultsView } from "../local-queries"; +import { readJsonlFile } from "../common/jsonl-reader"; +import type { SummaryEvent } from "../log-insights/log-summary"; export class ComparePerformanceView extends AbstractWebview< ToComparePerformanceViewMessage, @@ -46,8 +47,20 @@ export class ComparePerformanceView extends AbstractWebview< function scanLogWithProgress(log: string, logDescription: string) { const bytes = statSync(log).size; return withProgress( - async (progress) => - scanLog(log, new PerformanceOverviewScanner(), progress), + async (progress) => { + progress?.({ + // all scans have step 1 - the backing progress tracker allows increments instead of + // steps - but for now we are happy with a tiny UI that says what is happening + message: `Scanning ...`, + step: 1, + maxStep: 2, + }); + const scanner = new PerformanceOverviewScanner(); + await readJsonlFile(log, async (obj) => { + scanner.onEvent(obj); + }); + return scanner; + }, { title: `Scanning evaluator log ${logDescription} (${(bytes / 1024 / 1024).toFixed(1)} MB)`, diff --git a/extensions/ql-vscode/src/extension.ts b/extensions/ql-vscode/src/extension.ts index bf9e9be2b3d..bb36d958ef4 100644 --- a/extensions/ql-vscode/src/extension.ts +++ b/extensions/ql-vscode/src/extension.ts @@ -28,7 +28,6 @@ import { CliConfigListener, DistributionConfigListener, GitHubDatabaseConfigListener, - joinOrderWarningThreshold, QueryHistoryConfigListener, QueryServerConfigListener, VariantAnalysisConfigListener, @@ -102,7 +101,6 @@ import { getPackagingCommands } from "./packaging"; import { HistoryItemLabelProvider } from "./query-history/history-item-label-provider"; import { EvalLogViewer } from "./query-evaluation-logging"; import { SummaryLanguageSupport } from "./log-insights/summary-language-support"; -import { JoinOrderScannerProvider } from "./log-insights/join-order"; import { LogScannerService } from "./log-insights/log-scanner-service"; import { VariantAnalysisView } from "./variant-analysis/variant-analysis-view"; import { VariantAnalysisViewSerializer } from "./variant-analysis/variant-analysis-view-serializer"; @@ -941,11 +939,6 @@ async function activateWithInstalledDistribution( void extLogger.log("Initializing evaluation log scanners."); const logScannerService = new LogScannerService(qhm); ctx.subscriptions.push(logScannerService); - ctx.subscriptions.push( - logScannerService.scanners.registerLogScannerProvider( - new JoinOrderScannerProvider(() => joinOrderWarningThreshold()), - ), - ); void extLogger.log("Initializing compare view."); const compareView = new CompareView( diff --git a/extensions/ql-vscode/src/log-insights/join-order.ts b/extensions/ql-vscode/src/log-insights/join-order.ts index 26d6aa2fda4..a7b7318faff 100644 --- a/extensions/ql-vscode/src/log-insights/join-order.ts +++ b/extensions/ql-vscode/src/log-insights/join-order.ts @@ -1,8 +1,5 @@ -import type { - EvaluationLogProblemReporter, - EvaluationLogScanner, - EvaluationLogScannerProvider, -} from "./log-scanner"; +import { readJsonlFile } from "../common/jsonl-reader"; +import type { EvaluationLogProblemReporter } from "./log-scanner"; import type { InLayer, ComputeRecursive, @@ -129,36 +126,18 @@ interface Bucket { dependentPredicateSizes: Map; } -class JoinOrderScanner implements EvaluationLogScanner { +class PredicateSizeScanner { // Map a predicate hash to its result size - private readonly predicateSizes = new Map(); - private readonly layerEvents = new Map< - string, - Array - >(); + readonly predicateSizes = new Map(); + readonly layerEvents = new Map>(); - constructor( - private readonly problemReporter: EvaluationLogProblemReporter, - private readonly warningThreshold: number, - ) {} - - public onEvent(event: SummaryEvent): void { + onEvent(event: SummaryEvent): void { if ( event.completionType !== undefined && event.completionType !== "SUCCESS" ) { return; // Skip any evaluation that wasn't successful } - - this.recordPredicateSizes(event); - this.computeBadnessMetric(event); - } - - public onDone(): void { - void this; - } - - private recordPredicateSizes(event: SummaryEvent): void { switch (event.evaluationStrategy) { case "EXTENSIONAL": case "COMPUTED_EXTENSIONAL": @@ -185,8 +164,20 @@ class JoinOrderScanner implements EvaluationLogScanner { } } } +} - private computeBadnessMetric(event: SummaryEvent): void { +class JoinOrderScanner { + constructor( + private readonly predicateSizes: Map, + private readonly layerEvents: Map< + string, + Array + >, + private readonly problemReporter: EvaluationLogProblemReporter, + private readonly warningThreshold: number, + ) {} + + public onEvent(event: SummaryEvent): void { if ( event.completionType !== undefined && event.completionType !== "SUCCESS" @@ -475,13 +466,26 @@ class JoinOrderScanner implements EvaluationLogScanner { } } -export class JoinOrderScannerProvider implements EvaluationLogScannerProvider { - constructor(private readonly getThreshdold: () => number) {} +export async function scanAndReportJoinOrderProblems( + jsonSummaryLocation: string, + problemReporter: EvaluationLogProblemReporter, + warningThreshold: number, +) { + // Do two passes over the summary JSON. The first pass collects the sizes of predicates, along + // with collecting layer events for each recursive SCC. + const predicateSizeScanner = new PredicateSizeScanner(); + await readJsonlFile(jsonSummaryLocation, async (obj) => { + predicateSizeScanner.onEvent(obj); + }); - public createScanner( - problemReporter: EvaluationLogProblemReporter, - ): EvaluationLogScanner { - const threshold = this.getThreshdold(); - return new JoinOrderScanner(problemReporter, threshold); - } + // The second pass takes the information from the first pass, computes join order scores, and reports those that exceed the threshold. + const joinOrderScanner = new JoinOrderScanner( + predicateSizeScanner.predicateSizes, + predicateSizeScanner.layerEvents, + problemReporter, + warningThreshold, + ); + await readJsonlFile(jsonSummaryLocation, async (obj) => { + joinOrderScanner.onEvent(obj); + }); } diff --git a/extensions/ql-vscode/src/log-insights/log-scanner-service.ts b/extensions/ql-vscode/src/log-insights/log-scanner-service.ts index df59dc3b61c..e8e79d60bc5 100644 --- a/extensions/ql-vscode/src/log-insights/log-scanner-service.ts +++ b/extensions/ql-vscode/src/log-insights/log-scanner-service.ts @@ -2,11 +2,12 @@ import { Diagnostic, DiagnosticSeverity, languages, Range, Uri } from "vscode"; import { DisposableObject } from "../common/disposable-object"; import type { QueryHistoryInfo } from "../query-history/query-history-info"; import type { EvaluationLogProblemReporter } from "./log-scanner"; -import { EvaluationLogScannerSet } from "./log-scanner"; import type { PipelineInfo, SummarySymbols } from "./summary-parser"; import { readFile } from "fs-extra"; import { extLogger } from "../common/logging/vscode"; import type { QueryHistoryManager } from "../query-history/query-history-manager"; +import { scanAndReportJoinOrderProblems } from "./join-order"; +import { joinOrderWarningThreshold } from "../config"; /** * Compute the key used to find a predicate in the summary symbols. @@ -83,7 +84,6 @@ class ProblemReporter implements EvaluationLogProblemReporter { } export class LogScannerService extends DisposableObject { - public readonly scanners = new EvaluationLogScannerSet(); private readonly diagnosticCollection = this.push( languages.createDiagnosticCollection("ql-eval-log"), ); @@ -151,9 +151,11 @@ export class LogScannerService extends DisposableObject { ); } const problemReporter = new ProblemReporter(symbols); - - await this.scanners.scanLog(jsonSummaryLocation, problemReporter); - + await scanAndReportJoinOrderProblems( + jsonSummaryLocation, + problemReporter, + joinOrderWarningThreshold(), + ); return problemReporter.diagnostics; } } diff --git a/extensions/ql-vscode/src/log-insights/log-scanner.ts b/extensions/ql-vscode/src/log-insights/log-scanner.ts index 1105aeb915d..22a9a5cdf78 100644 --- a/extensions/ql-vscode/src/log-insights/log-scanner.ts +++ b/extensions/ql-vscode/src/log-insights/log-scanner.ts @@ -1,8 +1,3 @@ -import type { Disposable } from "../common/disposable-object"; -import { readJsonlFile } from "../common/jsonl-reader"; -import type { ProgressCallback } from "../common/vscode/progress"; -import type { SummaryEvent } from "./log-summary"; - /** * Callback interface used to report diagnostics from a log scanner. */ @@ -41,111 +36,3 @@ export interface EvaluationLogProblemReporter { */ log(message: string): void; } - -/** - * Interface implemented by a log scanner. Instances are created via - * `EvaluationLogScannerProvider.createScanner()`. - */ -export interface EvaluationLogScanner { - /** - * Called for each event in the log summary, in order. The implementation can report problems via - * the `EvaluationLogProblemReporter` interface that was supplied to `createScanner()`. - * @param event The log summary event. - */ - onEvent(event: SummaryEvent): void; - /** - * Called after all events in the log summary have been processed. The implementation can report - * problems via the `EvaluationLogProblemReporter` interface that was supplied to - * `createScanner()`. - */ - onDone(): void; -} - -/** - * A factory for log scanners. When a log is to be scanned, all registered - * `EvaluationLogScannerProviders` will be asked to create a new instance of `EvaluationLogScanner` - * to do the scanning. - */ -export interface EvaluationLogScannerProvider { - /** - * Create a new instance of `EvaluationLogScanner` to scan a single summary log. - * @param problemReporter Callback interface for reporting any problems discovered. - */ - createScanner( - problemReporter: EvaluationLogProblemReporter, - ): EvaluationLogScanner; -} - -export class EvaluationLogScannerSet { - private readonly scannerProviders = new Map< - number, - EvaluationLogScannerProvider - >(); - private nextScannerProviderId = 0; - - /** - * Register a provider that can create instances of `EvaluationLogScanner` to scan evaluation logs - * for problems. - * @param provider The provider. - * @returns A `Disposable` that, when disposed, will unregister the provider. - */ - public registerLogScannerProvider( - provider: EvaluationLogScannerProvider, - ): Disposable { - const id = this.nextScannerProviderId; - this.nextScannerProviderId++; - - this.scannerProviders.set(id, provider); - return { - dispose: () => { - this.scannerProviders.delete(id); - }, - }; - } - - /** - * Scan the evaluator summary log for problems, using the scanners for all registered providers. - * @param jsonSummaryLocation The file path of the JSON summary log. - * @param problemReporter Callback interface for reporting any problems discovered. - */ - public async scanLog( - jsonSummaryLocation: string, - problemReporter: EvaluationLogProblemReporter, - ): Promise { - const scanners = [...this.scannerProviders.values()].map((p) => - p.createScanner(problemReporter), - ); - - await readJsonlFile(jsonSummaryLocation, async (obj) => { - scanners.forEach((scanner) => { - scanner.onEvent(obj); - }); - }); - - scanners.forEach((scanner) => scanner.onDone()); - } -} - -/** - * Scan the evaluator summary log using the given scanner. For convenience, returns the scanner. - * - * @param jsonSummaryLocation The file path of the JSON summary log. - * @param scanner The scanner to process events from the log - */ -export async function scanLog( - jsonSummaryLocation: string, - scanner: T, - progress?: ProgressCallback, -): Promise { - progress?.({ - // all scans have step 1 - the backing progress tracker allows increments instead of steps - but for now we are happy with a tiny UI that says what is happening - message: `Scanning ...`, - step: 1, - maxStep: 2, - }); - await readJsonlFile(jsonSummaryLocation, async (obj) => { - scanner.onEvent(obj); - }); - scanner.onDone(); - return scanner; -} diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index 46634cf8bf3..023d4fa536f 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -1,4 +1,3 @@ -import type { EvaluationLogScanner } from "./log-scanner"; import type { SummaryEvent } from "./log-summary"; export interface PipelineSummary { @@ -55,7 +54,7 @@ export interface PerformanceComparisonDataFromLog { pipelineSummaryList: Array>; } -export class PerformanceOverviewScanner implements EvaluationLogScanner { +export class PerformanceOverviewScanner { private readonly nameToIndex = new Map(); private readonly data: PerformanceComparisonDataFromLog = { names: [], @@ -178,6 +177,4 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { } } } - - onDone(): void {} } diff --git a/extensions/ql-vscode/test/unit-tests/data/evaluator-log-summaries/bad-join-order.jsonl b/extensions/ql-vscode/test/unit-tests/data/evaluator-log-summaries/bad-join-order.jsonl index 8d366067387..59d6e67f64a 100644 --- a/extensions/ql-vscode/test/unit-tests/data/evaluator-log-summaries/bad-join-order.jsonl +++ b/extensions/ql-vscode/test/unit-tests/data/evaluator-log-summaries/bad-join-order.jsonl @@ -11458,7 +11458,7 @@ "duplicationPercentages" : [ 0, -1, 1, 0, -1, 0, -1, 0, 0, -1, 1, 0, 1, -1, 1, 0 ] }, { "raReference" : "order_500000", - "counts" : [ 0, -1, 0, -1, 3138, -1, 3138, 3138, -1, 0, -1, 0, 0, -1, 0, -1, 133, 133, -1, 0, 0, -1, 133, 133, 3271, 3271, 3271 ], + "counts" : [ 0, -1, 0, -1, 31380000, -1, 3138, 3138, -1, 0, -1, 0, 0, -1, 0, -1, 133, 133, -1, 0, 0, -1, 133, 133, 3271, 3271, 3271 ], "duplicationPercentages" : [ 0, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 1 ] }, { "raReference" : "order_500000", diff --git a/extensions/ql-vscode/test/unit-tests/log-scanner.test.ts b/extensions/ql-vscode/test/unit-tests/log-scanner.test.ts index 3d49f3362a1..fcb4ad6c477 100644 --- a/extensions/ql-vscode/test/unit-tests/log-scanner.test.ts +++ b/extensions/ql-vscode/test/unit-tests/log-scanner.test.ts @@ -1,28 +1,39 @@ +import { scanAndReportJoinOrderProblems } from "../../src/log-insights/join-order"; import type { EvaluationLogProblemReporter } from "../../src/log-insights/log-scanner"; -import { EvaluationLogScannerSet } from "../../src/log-insights/log-scanner"; -import { JoinOrderScannerProvider } from "../../src/log-insights/join-order"; import { join } from "path"; interface TestProblem { predicateName: string; raHash: string; - iteration: number; + order: string | undefined; message: string; } class TestProblemReporter implements EvaluationLogProblemReporter { public readonly problems: TestProblem[] = []; - public reportProblem( + public reportProblemNonRecursive( predicateName: string, raHash: string, - iteration: number, message: string, ): void { this.problems.push({ predicateName, raHash, - iteration, + order: undefined, + message, + }); + } + public reportProblemForRecursionSummary( + predicateName: string, + raHash: string, + order: string, + message: string, + ): void { + this.problems.push({ + predicateName, + raHash, + order, message, }); } @@ -34,23 +45,33 @@ class TestProblemReporter implements EvaluationLogProblemReporter { describe("log scanners", () => { it("should detect bad join orders", async () => { - const scanners = new EvaluationLogScannerSet(); - scanners.registerLogScannerProvider(new JoinOrderScannerProvider(() => 50)); const summaryPath = join( __dirname, "data/evaluator-log-summaries/bad-join-order.jsonl", ); const problemReporter = new TestProblemReporter(); - await scanners.scanLog(summaryPath, problemReporter); + await scanAndReportJoinOrderProblems(summaryPath, problemReporter, 50); + + expect(problemReporter.problems.length).toBe(2); - expect(problemReporter.problems.length).toBe(1); - expect(problemReporter.problems[0].predicateName).toBe("#select#ff"); + expect(problemReporter.problems[0].predicateName).toBe( + "Enclosing::exprEnclosingElement#c50c5fbf#ff", + ); expect(problemReporter.problems[0].raHash).toBe( - "1bb43c97jpmuh8r2v0f9hktim63", + "7cc60wtoigvl1lheqqa12d8fmi4", ); - expect(problemReporter.problems[0].iteration).toBe(0); + expect(problemReporter.problems[0].order).toBe("order_500000"); expect(problemReporter.problems[0].message).toBe( - "Relation '#select#ff' has an inefficient join order. Its join order metric is 4961.83, which is larger than the threshold of 50.00.", + "The order_500000 pipeline for 'Enclosing::exprEnclosingElement#c50c5fbf#ff' has an inefficient join order. Its join order metric is 98.07, which is larger than the threshold of 50.00.", + ); + + expect(problemReporter.problems[1].predicateName).toBe("#select#ff"); + expect(problemReporter.problems[1].raHash).toBe( + "1bb43c97jpmuh8r2v0f9hktim63", + ); + expect(problemReporter.problems[1].order).toBeUndefined(); + expect(problemReporter.problems[1].message).toBe( + "'#select#ff' has an inefficient join order. Its join order metric is 4961.83, which is larger than the threshold of 50.00.", ); }); }); From cb446659adab2b232c0fe45c2268411d82ce92f4 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Fri, 25 Apr 2025 12:31:53 +0100 Subject: [PATCH 087/100] Include RA hashes in messages about bad join orders --- .../ql-vscode/src/log-insights/join-order.ts | 14 ++++++++------ .../ql-vscode/test/unit-tests/log-scanner.test.ts | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/extensions/ql-vscode/src/log-insights/join-order.ts b/extensions/ql-vscode/src/log-insights/join-order.ts index a7b7318faff..ce10487caf6 100644 --- a/extensions/ql-vscode/src/log-insights/join-order.ts +++ b/extensions/ql-vscode/src/log-insights/join-order.ts @@ -205,9 +205,10 @@ class JoinOrderScanner { resultSize!, ); if (metric >= this.warningThreshold) { - const message = `'${ - event.predicateName - }' has an inefficient join order. Its join order metric is ${metric.toFixed( + const message = `'${event.predicateName}@${event.raHash.substring( + 0, + 8, + )}' has an inefficient join order. Its join order metric is ${metric.toFixed( 2, )}, which is larger than the threshold of ${this.warningThreshold.toFixed( 2, @@ -243,9 +244,10 @@ class JoinOrderScanner { resultSize, ); if (metric >= this.warningThreshold) { - const message = `The ${raReference} pipeline for '${ - predicateName - }' has an inefficient join order. Its join order metric is ${metric.toFixed( + const message = `The ${raReference} pipeline for '${predicateName}@${raHash.substring( + 0, + 8, + )}' has an inefficient join order. Its join order metric is ${metric.toFixed( 2, )}, which is larger than the threshold of ${this.warningThreshold.toFixed( 2, diff --git a/extensions/ql-vscode/test/unit-tests/log-scanner.test.ts b/extensions/ql-vscode/test/unit-tests/log-scanner.test.ts index fcb4ad6c477..0012cecda23 100644 --- a/extensions/ql-vscode/test/unit-tests/log-scanner.test.ts +++ b/extensions/ql-vscode/test/unit-tests/log-scanner.test.ts @@ -62,7 +62,7 @@ describe("log scanners", () => { ); expect(problemReporter.problems[0].order).toBe("order_500000"); expect(problemReporter.problems[0].message).toBe( - "The order_500000 pipeline for 'Enclosing::exprEnclosingElement#c50c5fbf#ff' has an inefficient join order. Its join order metric is 98.07, which is larger than the threshold of 50.00.", + "The order_500000 pipeline for 'Enclosing::exprEnclosingElement#c50c5fbf#ff@7cc60wto' has an inefficient join order. Its join order metric is 98.07, which is larger than the threshold of 50.00.", ); expect(problemReporter.problems[1].predicateName).toBe("#select#ff"); @@ -71,7 +71,7 @@ describe("log scanners", () => { ); expect(problemReporter.problems[1].order).toBeUndefined(); expect(problemReporter.problems[1].message).toBe( - "'#select#ff' has an inefficient join order. Its join order metric is 4961.83, which is larger than the threshold of 50.00.", + "'#select#ff@1bb43c97' has an inefficient join order. Its join order metric is 4961.83, which is larger than the threshold of 50.00.", ); }); }); From 84441f055a8f6d0299fcedaaf6949b507cc53f66 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Fri, 25 Apr 2025 12:40:38 +0100 Subject: [PATCH 088/100] Add changenote about fix for reporting bad joins in recursions --- extensions/ql-vscode/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extensions/ql-vscode/CHANGELOG.md b/extensions/ql-vscode/CHANGELOG.md index 03054c92082..5b6000ac0a6 100644 --- a/extensions/ql-vscode/CHANGELOG.md +++ b/extensions/ql-vscode/CHANGELOG.md @@ -2,6 +2,8 @@ ## [UNRELEASED] +- Fix reporting of bad join orders in recursive predicates. [#4019](https://github.com/github/vscode-codeql/pull/4019) + ## 1.17.2 - 27 March 2025 - Always authenticate when downloading databases from GitHub, instead of only when in canary mode. [#3941](https://github.com/github/vscode-codeql/pull/3941) From fbfa60b2f207b88025cae03017beb1ea04a00a91 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 25 Apr 2025 12:26:21 +0000 Subject: [PATCH 089/100] Bump Node version to v20.18.3 --- extensions/ql-vscode/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index c3381c0b5d7..10c3763b2c6 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -7686,9 +7686,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.30.tgz", - "integrity": "sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==", + "version": "20.17.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.31.tgz", + "integrity": "sha512-quODOCNXQAbNf1Q7V+fI8WyErOCh0D5Yd31vHnKu4GkSztGQ7rlltAaqXhHhLl33tlVyUXs2386MkANSwgDn6A==", "dev": true, "license": "MIT", "dependencies": { From 7b113a2b3833291a69863e3869c6fc5983357b51 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 28 Apr 2025 13:01:22 +0200 Subject: [PATCH 090/100] Do not export NamedLocal as it is never imported. There's a linting check that fails if we export something without importing it anywhere. --- extensions/ql-vscode/src/log-insights/log-summary.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/src/log-insights/log-summary.ts b/extensions/ql-vscode/src/log-insights/log-summary.ts index 31e582a06bc..6919210f98c 100644 --- a/extensions/ql-vscode/src/log-insights/log-summary.ts +++ b/extensions/ql-vscode/src/log-insights/log-summary.ts @@ -63,7 +63,7 @@ export interface InLayer extends ResultEventBase { predicateIterationMillis: number[]; } -export interface NamedLocal extends ResultEventBase { +interface NamedLocal extends ResultEventBase { evaluationStrategy: "NAMED_LOCAL"; deltaSizes: number[]; ra: Ra; From b66a670b7f077fecb98386777249ba2ec0504e21 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 28 Apr 2025 12:26:26 +0000 Subject: [PATCH 091/100] Bump Node version to v20.18.3 --- extensions/ql-vscode/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 10c3763b2c6..76f46d40a03 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -7686,9 +7686,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.31.tgz", - "integrity": "sha512-quODOCNXQAbNf1Q7V+fI8WyErOCh0D5Yd31vHnKu4GkSztGQ7rlltAaqXhHhLl33tlVyUXs2386MkANSwgDn6A==", + "version": "20.17.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.32.tgz", + "integrity": "sha512-zeMXFn8zQ+UkjK4ws0RiOC9EWByyW1CcVmLe+2rQocXRsGEDxUCwPEIVgpsGcLHS/P8JkT0oa3839BRABS0oPw==", "dev": true, "license": "MIT", "dependencies": { From f9f92462b7ee6fcc217af1b98eb6e4ccf8a8afd3 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 29 Apr 2025 09:07:04 +0200 Subject: [PATCH 092/100] Apply suggestions from code review Co-authored-by: Andrew Eisenberg --- extensions/ql-vscode/src/log-insights/performance-comparison.ts | 2 +- .../src/view/compare-performance/ComparePerformance.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/ql-vscode/src/log-insights/performance-comparison.ts b/extensions/ql-vscode/src/log-insights/performance-comparison.ts index 2922951479b..8f00e9d2dbf 100644 --- a/extensions/ql-vscode/src/log-insights/performance-comparison.ts +++ b/extensions/ql-vscode/src/log-insights/performance-comparison.ts @@ -124,7 +124,7 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner { case "COMPUTED_EXTENSIONAL": { if (predicateName.startsWith("cached_")) { // Add a dependency from a cached COMPUTED_EXTENSIONAL to the predicate with the actual contents. - // The raHash of the this event may appear in a CACHE_HIT events in the other event log. The dependency + // The raHash of the this event may appear in a CACHE_HIT event in the other event log. The dependency // we're adding here is needed in order to associate the original predicate with such a cache hit. const originalName = predicateName.substring("cached_".length); const originalIndex = this.nameToIndex.get(originalName); diff --git a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx index 5e015c25b23..c9fac0a09dc 100644 --- a/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx +++ b/extensions/ql-vscode/src/view/compare-performance/ComparePerformance.tsx @@ -159,7 +159,7 @@ class ComparisonDataset { const name = other.data.names[otherCacheHit]; const ownIndex = this.nameToIndex.get(name); if (ownIndex != null) { - visit(ownIndex, this.data.raHashes[ownIndex]); + visit(ownIndex, raHashes[ownIndex]); } } } From 4a9d5f950da2cef5fc7c7096ece6a09ec26121bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Apr 2025 19:38:00 +0000 Subject: [PATCH 093/100] Bump vite in /extensions/ql-vscode in the npm_and_yarn group Bumps the npm_and_yarn group in /extensions/ql-vscode with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite). Updates `vite` from 6.2.6 to 6.3.4 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.3.4 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 255 ++++++++++++++++--------- extensions/ql-vscode/package.json | 2 +- 2 files changed, 167 insertions(+), 90 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 76f46d40a03..4b7511705a0 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -141,7 +141,7 @@ "ts-unused-exports": "^10.1.0", "typescript": "^5.6.2", "typescript-plugin-css-modules": "^5.1.0", - "vite": "^6.2.6", + "vite": "^6.3.4", "vite-node": "^3.0.7" }, "engines": { @@ -5886,9 +5886,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", - "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", + "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==", "cpu": [ "arm" ], @@ -5900,9 +5900,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", - "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", + "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==", "cpu": [ "arm64" ], @@ -5914,9 +5914,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", - "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", + "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==", "cpu": [ "arm64" ], @@ -5928,9 +5928,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", - "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", + "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==", "cpu": [ "x64" ], @@ -5942,9 +5942,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", - "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", + "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==", "cpu": [ "arm64" ], @@ -5956,9 +5956,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", - "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", + "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==", "cpu": [ "x64" ], @@ -5970,9 +5970,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", - "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", + "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==", "cpu": [ "arm" ], @@ -5984,9 +5984,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", - "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", + "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==", "cpu": [ "arm" ], @@ -5998,9 +5998,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", - "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", + "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==", "cpu": [ "arm64" ], @@ -6012,9 +6012,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", - "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", + "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==", "cpu": [ "arm64" ], @@ -6026,9 +6026,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", - "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", + "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==", "cpu": [ "loong64" ], @@ -6040,9 +6040,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", - "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", + "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==", "cpu": [ "ppc64" ], @@ -6054,9 +6054,23 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", - "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", + "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", + "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==", "cpu": [ "riscv64" ], @@ -6068,9 +6082,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", - "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", + "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==", "cpu": [ "s390x" ], @@ -6082,9 +6096,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", - "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", + "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==", "cpu": [ "x64" ], @@ -6096,9 +6110,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", - "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", + "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==", "cpu": [ "x64" ], @@ -6110,9 +6124,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", - "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", + "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==", "cpu": [ "arm64" ], @@ -6124,9 +6138,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", - "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", + "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==", "cpu": [ "ia32" ], @@ -6138,9 +6152,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", - "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", + "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==", "cpu": [ "x64" ], @@ -7492,10 +7506,11 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/expect": { "version": "1.20.4", @@ -13736,6 +13751,21 @@ "pend": "~1.2.0" } }, + "node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -23886,13 +23916,13 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", - "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz", + "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.7" }, "bin": { "rollup": "dist/bin/rollup" @@ -23902,25 +23932,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.8", - "@rollup/rollup-android-arm64": "4.34.8", - "@rollup/rollup-darwin-arm64": "4.34.8", - "@rollup/rollup-darwin-x64": "4.34.8", - "@rollup/rollup-freebsd-arm64": "4.34.8", - "@rollup/rollup-freebsd-x64": "4.34.8", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", - "@rollup/rollup-linux-arm-musleabihf": "4.34.8", - "@rollup/rollup-linux-arm64-gnu": "4.34.8", - "@rollup/rollup-linux-arm64-musl": "4.34.8", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", - "@rollup/rollup-linux-riscv64-gnu": "4.34.8", - "@rollup/rollup-linux-s390x-gnu": "4.34.8", - "@rollup/rollup-linux-x64-gnu": "4.34.8", - "@rollup/rollup-linux-x64-musl": "4.34.8", - "@rollup/rollup-win32-arm64-msvc": "4.34.8", - "@rollup/rollup-win32-ia32-msvc": "4.34.8", - "@rollup/rollup-win32-x64-msvc": "4.34.8", + "@rollup/rollup-android-arm-eabi": "4.40.1", + "@rollup/rollup-android-arm64": "4.40.1", + "@rollup/rollup-darwin-arm64": "4.40.1", + "@rollup/rollup-darwin-x64": "4.40.1", + "@rollup/rollup-freebsd-arm64": "4.40.1", + "@rollup/rollup-freebsd-x64": "4.40.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.1", + "@rollup/rollup-linux-arm-musleabihf": "4.40.1", + "@rollup/rollup-linux-arm64-gnu": "4.40.1", + "@rollup/rollup-linux-arm64-musl": "4.40.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-musl": "4.40.1", + "@rollup/rollup-linux-s390x-gnu": "4.40.1", + "@rollup/rollup-linux-x64-gnu": "4.40.1", + "@rollup/rollup-linux-x64-musl": "4.40.1", + "@rollup/rollup-win32-arm64-msvc": "4.40.1", + "@rollup/rollup-win32-ia32-msvc": "4.40.1", + "@rollup/rollup-win32-x64-msvc": "4.40.1", "fsevents": "~2.3.2" } }, @@ -25285,6 +25316,36 @@ "dev": true, "license": "MIT" }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tinyrainbow": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", @@ -26550,15 +26611,18 @@ } }, "node_modules/vite": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz", - "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz", + "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rollup": "^4.30.1" + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" }, "bin": { "vite": "bin/vite.js" @@ -26644,6 +26708,19 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/vscode-extension-telemetry": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.7.tgz", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 071b9a82e68..2d89c348d26 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2099,7 +2099,7 @@ "ts-unused-exports": "^10.1.0", "typescript": "^5.6.2", "typescript-plugin-css-modules": "^5.1.0", - "vite": "^6.2.6", + "vite": "^6.3.4", "vite-node": "^3.0.7" }, "lint-staged": { From 7826df8c4de5c764fb2b69f22036a8d9393deb47 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 13:53:13 +0000 Subject: [PATCH 094/100] Bump CLI version from v2.21.1 to v2.21.2 for integration tests (#4023) Co-authored-by: github-actions[bot] --- extensions/ql-vscode/supported_cli_versions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/supported_cli_versions.json b/extensions/ql-vscode/supported_cli_versions.json index 6547a021e56..c443ebf20a4 100644 --- a/extensions/ql-vscode/supported_cli_versions.json +++ b/extensions/ql-vscode/supported_cli_versions.json @@ -1,5 +1,5 @@ [ - "v2.21.1", + "v2.21.2", "v2.20.7", "v2.19.4", "v2.18.4", From 420a1e3f408de85c6f2569af8fec8ebc51249620 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 15:47:38 +0100 Subject: [PATCH 095/100] Bump the typescript-eslint group in /extensions/ql-vscode with 2 updates (#4024) Bumps the typescript-eslint group in /extensions/ql-vscode with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.31.0 to 8.31.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.31.0 to 8.31.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.31.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.31.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- extensions/ql-vscode/package-lock.json | 168 ++++++++++++------------- extensions/ql-vscode/package.json | 4 +- 2 files changed, 86 insertions(+), 86 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 4b7511705a0..5da3bbd8cd8 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -95,8 +95,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.31.0", - "@typescript-eslint/parser": "^8.31.0", + "@typescript-eslint/eslint-plugin": "^8.31.1", + "@typescript-eslint/parser": "^8.31.1", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", @@ -7982,17 +7982,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz", - "integrity": "sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz", + "integrity": "sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.31.0", - "@typescript-eslint/type-utils": "8.31.0", - "@typescript-eslint/utils": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0", + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/type-utils": "8.31.1", + "@typescript-eslint/utils": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -8012,14 +8012,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", - "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", + "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0" + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8030,9 +8030,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", - "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", + "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", "dev": true, "license": "MIT", "engines": { @@ -8044,14 +8044,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", - "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", + "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8071,16 +8071,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz", - "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz", + "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.31.0", - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/typescript-estree": "8.31.0" + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/typescript-estree": "8.31.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8095,13 +8095,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", - "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", + "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/types": "8.31.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8306,16 +8306,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.0.tgz", - "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.1.tgz", + "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.31.0", - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/typescript-estree": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0", + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/typescript-estree": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "debug": "^4.3.4" }, "engines": { @@ -8331,14 +8331,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", - "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", + "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0" + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8349,9 +8349,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", - "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", + "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", "dev": true, "license": "MIT", "engines": { @@ -8363,14 +8363,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", - "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", + "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8390,13 +8390,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", - "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", + "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/types": "8.31.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8477,14 +8477,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz", - "integrity": "sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz", + "integrity": "sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.31.0", - "@typescript-eslint/utils": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.1", + "@typescript-eslint/utils": "8.31.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -8501,14 +8501,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", - "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", + "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0" + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8519,9 +8519,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", - "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", + "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", "dev": true, "license": "MIT", "engines": { @@ -8533,14 +8533,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", - "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", + "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8560,16 +8560,16 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz", - "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz", + "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.31.0", - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/typescript-estree": "8.31.0" + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/typescript-estree": "8.31.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8584,13 +8584,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", - "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", + "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/types": "8.31.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 2d89c348d26..c7bac46d822 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2053,8 +2053,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.31.0", - "@typescript-eslint/parser": "^8.31.0", + "@typescript-eslint/eslint-plugin": "^8.31.1", + "@typescript-eslint/parser": "^8.31.1", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", From 305f018c104ecb9a76055c4e68c6d203ec2697a1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 6 May 2025 12:26:38 +0000 Subject: [PATCH 096/100] Bump Node version to v20.18.3 --- extensions/ql-vscode/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 5da3bbd8cd8..0942237c05d 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -7701,9 +7701,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.32", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.32.tgz", - "integrity": "sha512-zeMXFn8zQ+UkjK4ws0RiOC9EWByyW1CcVmLe+2rQocXRsGEDxUCwPEIVgpsGcLHS/P8JkT0oa3839BRABS0oPw==", + "version": "20.17.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.41.tgz", + "integrity": "sha512-bOB0a6u/e7Ey/Gyc+ghRg+xoXFGYug4I7pdvwxudh+Ewmk93Z4wTudn4NIKiIRYQyujf9jm2uTBzQK8tg8oUeQ==", "dev": true, "license": "MIT", "dependencies": { From 469d655563a4926f33237e43352fd18939155486 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 7 May 2025 12:26:35 +0000 Subject: [PATCH 097/100] Bump Node version to v20.18.3 --- extensions/ql-vscode/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 0942237c05d..179c3b97410 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -7701,9 +7701,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.41.tgz", - "integrity": "sha512-bOB0a6u/e7Ey/Gyc+ghRg+xoXFGYug4I7pdvwxudh+Ewmk93Z4wTudn4NIKiIRYQyujf9jm2uTBzQK8tg8oUeQ==", + "version": "20.17.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.43.tgz", + "integrity": "sha512-DnDEcDUnVAUYSa7U03QvrXbj1MZj00xoyi/a3lRGkR/c7BFUnqv+OY9EUphMqXUKdZJEOmuzu2mm+LmCisnPow==", "dev": true, "license": "MIT", "dependencies": { From 10cd4407ba082a6ca039d767285e7d32bd03e9dd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 8 May 2025 12:26:28 +0000 Subject: [PATCH 098/100] Bump Node version to v20.18.3 --- extensions/ql-vscode/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 179c3b97410..5fb749a680a 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -7701,9 +7701,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.43", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.43.tgz", - "integrity": "sha512-DnDEcDUnVAUYSa7U03QvrXbj1MZj00xoyi/a3lRGkR/c7BFUnqv+OY9EUphMqXUKdZJEOmuzu2mm+LmCisnPow==", + "version": "20.17.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.45.tgz", + "integrity": "sha512-vO9+E1smq+149wsmmLdM8SKVW7gRzLjfo0mU7kiykhV6rL+GEUhUmW7VywJNSxJHQzt9QBIHEo+3SG4MrFTqbA==", "dev": true, "license": "MIT", "dependencies": { From 8a81c6ac6887b85c382359114fee9b3ce95667fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 May 2025 13:50:20 +0000 Subject: [PATCH 099/100] Bump codercom/code-server in /extensions/ql-vscode/test/e2e/docker Bumps codercom/code-server from 4.99.3 to 4.99.4. --- updated-dependencies: - dependency-name: codercom/code-server dependency-version: 4.99.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/test/e2e/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ql-vscode/test/e2e/docker/Dockerfile b/extensions/ql-vscode/test/e2e/docker/Dockerfile index 83bac917677..036c943d5d4 100644 --- a/extensions/ql-vscode/test/e2e/docker/Dockerfile +++ b/extensions/ql-vscode/test/e2e/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM codercom/code-server:4.99.3 +FROM codercom/code-server:4.99.4 USER root From 4363b25af7b1e888f1391502add4b4fa173fdefe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 May 2025 13:59:32 +0000 Subject: [PATCH 100/100] Bump the typescript-eslint group in /extensions/ql-vscode with 2 updates Bumps the typescript-eslint group in /extensions/ql-vscode with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.31.1 to 8.32.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.32.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.31.1 to 8.32.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.32.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.32.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.32.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- extensions/ql-vscode/package-lock.json | 194 +++++++++++++------------ extensions/ql-vscode/package.json | 4 +- 2 files changed, 101 insertions(+), 97 deletions(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index 179c3b97410..20568145245 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -95,8 +95,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.31.1", - "@typescript-eslint/parser": "^8.31.1", + "@typescript-eslint/eslint-plugin": "^8.32.0", + "@typescript-eslint/parser": "^8.32.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1", @@ -3086,16 +3086,20 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -7982,21 +7986,21 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz", - "integrity": "sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.0.tgz", + "integrity": "sha512-/jU9ettcntkBFmWUzzGgsClEi2ZFiikMX5eEQsmxIAWMOn4H3D4rvHssstmAHGVvrYnaMqdWWWg0b5M6IN/MTQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.31.1", - "@typescript-eslint/type-utils": "8.31.1", - "@typescript-eslint/utils": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1", + "@typescript-eslint/scope-manager": "8.32.0", + "@typescript-eslint/type-utils": "8.32.0", + "@typescript-eslint/utils": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8012,14 +8016,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", - "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.0.tgz", + "integrity": "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1" + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8030,9 +8034,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", - "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.0.tgz", + "integrity": "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==", "dev": true, "license": "MIT", "engines": { @@ -8044,20 +8048,20 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", - "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.0.tgz", + "integrity": "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8071,16 +8075,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz", - "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.31.1", - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/typescript-estree": "8.31.1" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.32.0", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/typescript-estree": "8.32.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8095,13 +8099,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", - "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.0.tgz", + "integrity": "sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/types": "8.32.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8306,16 +8310,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.1.tgz", - "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.0.tgz", + "integrity": "sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.31.1", - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/typescript-estree": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1", + "@typescript-eslint/scope-manager": "8.32.0", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/typescript-estree": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4" }, "engines": { @@ -8331,14 +8335,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", - "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.0.tgz", + "integrity": "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1" + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8349,9 +8353,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", - "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.0.tgz", + "integrity": "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==", "dev": true, "license": "MIT", "engines": { @@ -8363,20 +8367,20 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", - "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.0.tgz", + "integrity": "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8390,13 +8394,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", - "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.0.tgz", + "integrity": "sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/types": "8.32.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8477,16 +8481,16 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz", - "integrity": "sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.0.tgz", + "integrity": "sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.31.1", - "@typescript-eslint/utils": "8.31.1", + "@typescript-eslint/typescript-estree": "8.32.0", + "@typescript-eslint/utils": "8.32.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8501,14 +8505,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", - "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.0.tgz", + "integrity": "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1" + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8519,9 +8523,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", - "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.0.tgz", + "integrity": "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==", "dev": true, "license": "MIT", "engines": { @@ -8533,20 +8537,20 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", - "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.0.tgz", + "integrity": "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8560,16 +8564,16 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz", - "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.31.1", - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/typescript-estree": "8.31.1" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.32.0", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/typescript-estree": "8.32.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8584,13 +8588,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", - "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.0.tgz", + "integrity": "sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/types": "8.32.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index c7bac46d822..0c691154962 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -2053,8 +2053,8 @@ "@types/tmp": "^0.2.6", "@types/vscode": "1.90.0", "@types/yauzl": "^2.10.3", - "@typescript-eslint/eslint-plugin": "^8.31.1", - "@typescript-eslint/parser": "^8.31.1", + "@typescript-eslint/eslint-plugin": "^8.32.0", + "@typescript-eslint/parser": "^8.32.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^3.2.1", "ansi-colors": "^4.1.1",