{
  "name": "vscode-codeql",
  "displayName": "CodeQL",
  "description": "CodeQL for Visual Studio Code",
  "author": "GitHub",
  "private": true,
  "version": "1.6.13",
  "publisher": "GitHub",
  "license": "MIT",
  "icon": "media/VS-marketplace-CodeQL-icon.png",
  "repository": {
    "type": "git",
    "url": "https://github.com/github/vscode-codeql"
  },
  "engines": {
    "vscode": "^1.59.0",
    "node": "^16.13.0",
    "npm": ">=7.20.6"
  },
  "categories": [
    "Programming Languages"
  ],
  "extensionDependencies": [
    "hbenl.vscode-test-explorer"
  ],
  "capabilities": {
    "untrustedWorkspaces": {
      "supported": "limited",
      "description": "Workspace trust is required to execute commands that can contain arbitrary paths.",
      "restrictedConfigurations": [
        "codeQL.cli.executablePath",
        "codeQL.runningTests.additionalTestArguments"
      ]
    }
  },
  "activationEvents": [
    "onLanguage:ql",
    "onLanguage:ql-summary",
    "onView:codeQLDatabases",
    "onView:codeQLQueryHistory",
    "onView:codeQLAstViewer",
    "onView:codeQLEvalLogViewer",
    "onView:test-explorer",
    "onCommand:codeQL.checkForUpdatesToCLI",
    "onCommand:codeQL.authenticateToGitHub",
    "onCommand:codeQLDatabases.chooseDatabaseFolder",
    "onCommand:codeQLDatabases.chooseDatabaseArchive",
    "onCommand:codeQLDatabases.chooseDatabaseInternet",
    "onCommand:codeQLDatabases.chooseDatabaseGithub",
    "onCommand:codeQLDatabases.chooseDatabaseLgtm",
    "onCommand:codeQL.setCurrentDatabase",
    "onCommand:codeQL.viewAst",
    "onCommand:codeQL.viewCfg",
    "onCommand:codeQL.openReferencedFile",
    "onCommand:codeQL.previewQueryHelp",
    "onCommand:codeQL.chooseDatabaseFolder",
    "onCommand:codeQL.chooseDatabaseArchive",
    "onCommand:codeQL.chooseDatabaseInternet",
    "onCommand:codeQL.chooseDatabaseGithub",
    "onCommand:codeQL.chooseDatabaseLgtm",
    "onCommand:codeQLDatabases.chooseDatabase",
    "onCommand:codeQLDatabases.setCurrentDatabase",
    "onCommand:codeQL.quickQuery",
    "onCommand:codeQL.restartQueryServer",
    "onWebviewPanel:resultsView",
    "onFileSystem:codeql-zip-archive"
  ],
  "main": "./out/extension",
  "files": [
    "gen/*.js",
    "media/**",
    "out/**",
    "package.json",
    "language-configuration.json"
  ],
  "contributes": {
    "configurationDefaults": {
      "[ql]": {
        "editor.wordBasedSuggestions": false
      },
      "[dbscheme]": {
        "editor.wordBasedSuggestions": false
      }
    },
    "languages": [
      {
        "id": "ql",
        "aliases": [
          "QL",
          "ql",
          "CodeQL"
        ],
        "extensions": [
          ".ql",
          ".qll"
        ],
        "configuration": "./language-configuration.json"
      },
      {
        "id": "dbscheme",
        "aliases": [
          "DBScheme",
          "dbscheme"
        ],
        "extensions": [
          ".dbscheme"
        ],
        "configuration": "./language-configuration.json"
      },
      {
        "id": "xml",
        "extensions": [
          ".qhelp"
        ]
      },
      {
        "id": "ql-summary",
        "filenames": [
          "evaluator-log.summary"
        ]
      }
    ],
    "grammars": [
      {
        "language": "ql",
        "scopeName": "source.ql",
        "path": "./out/syntaxes/ql.tmLanguage.json"
      },
      {
        "language": "dbscheme",
        "scopeName": "source.dbscheme",
        "path": "./out/syntaxes/dbscheme.tmLanguage.json"
      }
    ],
    "snippets": [
      {
        "language": "ql",
        "path": "./snippets.json"
      }
    ],
    "configuration": {
      "type": "object",
      "title": "CodeQL",
      "properties": {
        "codeQL.cli.executablePath": {
          "scope": "machine-overridable",
          "type": "string",
          "default": "",
          "markdownDescription": "Path to the CodeQL executable that should be used by the CodeQL extension. The executable is named `codeql` on Linux/Mac and `codeql.exe` on Windows. If empty, the extension will look for a CodeQL executable on your shell PATH, or if CodeQL is not on your PATH, download and manage its own CodeQL executable."
        },
        "codeQL.runningQueries.numberOfThreads": {
          "type": "integer",
          "default": 1,
          "minimum": 0,
          "maximum": 1024,
          "description": "Number of threads for running queries."
        },
        "codeQL.runningQueries.saveCache": {
          "type": "boolean",
          "default": false,
          "scope": "window",
          "description": "Aggressively save intermediate results to the disk cache. This may speed up subsequent queries if they are similar. Be aware that using this option will greatly increase disk usage and initial evaluation time."
        },
        "codeQL.runningQueries.cacheSize": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "minimum": 1024,
          "description": "Maximum size of the disk cache (in MB). Leave blank to allow the evaluator to automatically adjust the size of the disk cache based on the size of the codebase and the complexity of the queries being executed."
        },
        "codeQL.runningQueries.timeout": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "minimum": 0,
          "maximum": 2147483647,
          "description": "Timeout (in seconds) for running queries. Leave blank or set to zero for no timeout."
        },
        "codeQL.runningQueries.memory": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "minimum": 1024,
          "description": "Memory (in MB) to use for running queries. Leave blank for CodeQL to choose a suitable value based on your system's available memory."
        },
        "codeQL.runningQueries.debug": {
          "type": "boolean",
          "default": false,
          "description": "Enable debug logging and tuple counting when running CodeQL queries. This information is useful for debugging query performance."
        },
        "codeQL.runningQueries.maxPaths": {
          "type": "integer",
          "default": 4,
          "minimum": 1,
          "maximum": 256,
          "markdownDescription": "Max number of paths to display for each alert found by a path query (`@kind path-problem`)."
        },
        "codeQL.runningQueries.autoSave": {
          "type": "boolean",
          "default": false,
          "description": "Enable automatically saving a modified query file when running a query."
        },
        "codeQL.runningQueries.maxQueries": {
          "type": "integer",
          "default": 20,
          "description": "Max number of simultaneous queries to run using the 'CodeQL: Run Queries' command."
        },
        "codeQL.runningQueries.customLogDirectory": {
          "type": [
            "string",
            null
          ],
          "default": null,
          "description": "Path to a directory where the CodeQL extension should store query server logs. If empty, the extension stores logs in a temporary workspace folder and deletes the contents after each run.",
          "markdownDeprecationMessage": "This property is deprecated and no longer has any effect. All query logs are stored in the query history folder next to the query results."
        },
        "codeQL.runningQueries.quickEvalCodelens": {
          "type": "boolean",
          "default": true,
          "description": "Enable the 'Quick Evaluation' CodeLens."
        },
        "codeQL.resultsDisplay.pageSize": {
          "type": "integer",
          "default": 200,
          "description": "Max number of query results to display per page in the results view."
        },
        "codeQL.queryHistory.format": {
          "type": "string",
          "default": "%q on %d - %s %r [%t]",
          "markdownDescription": "Default string for how to label query history items.\n* %t is the time of the query\n* %q is the human-readable query name\n* %f is the query file name\n* %d is the database name\n* %r is the number of results\n* %s is a status string"
        },
        "codeQL.queryHistory.ttl": {
          "type": "number",
          "default": 30,
          "description": "Number of days to retain queries in the query history before being automatically deleted.",
          "scope": "machine"
        },
        "codeQL.runningTests.additionalTestArguments": {
          "scope": "window",
          "type": "array",
          "default": [],
          "markdownDescription": "Additional command line arguments to pass to the CLI when [running tests](https://codeql.github.com/docs/codeql-cli/manual/test-run/). This setting should be an array of strings, each containing an argument to be passed."
        },
        "codeQL.runningTests.numberOfThreads": {
          "scope": "window",
          "type": "integer",
          "default": 1,
          "minimum": 0,
          "maximum": 1024,
          "description": "Number of threads for running CodeQL tests."
        },
        "codeQL.telemetry.enableTelemetry": {
          "type": "boolean",
          "default": false,
          "scope": "application",
          "markdownDescription": "Specifies whether to send CodeQL usage telemetry. This setting AND the global `#telemetry.enableTelemetry#` setting must be checked for telemetry to be sent to GitHub. For more information, see the [telemetry documentation](https://codeql.github.com/docs/codeql-for-visual-studio-code/about-telemetry-in-codeql-for-visual-studio-code)"
        },
        "codeQL.telemetry.logTelemetry": {
          "type": "boolean",
          "default": false,
          "scope": "application",
          "description": "Specifies whether or not to write telemetry events to the extension log."
        },
        "codeQL.variantAnalysis.repositoryLists": {
          "type": [
            "object",
            null
          ],
          "patternProperties": {
            ".*": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "default": null,
          "markdownDescription": "[For internal use only] Lists of GitHub repositories that you want to run variant analysis against. This should be a JSON object where each key is a user-specified name for this repository list, and the value is an array of GitHub repositories (of the form `<owner>/<repo>`)."
        },
        "codeQL.variantAnalysis.controllerRepo": {
          "type": "string",
          "default": "",
          "pattern": "^$|^(?:[a-zA-Z0-9]+-)*[a-zA-Z0-9]+/[a-zA-Z0-9-_]+$",
          "patternErrorMessage": "Please enter a valid GitHub repository",
          "markdownDescription": "[For internal use only] The name of the GitHub repository in which the GitHub Actions workflow is run when using the \"Run Variant Analysis\" command. The repository should be of the form `<owner>/<repo>`)."
        }
      }
    },
    "commands": [
      {
        "command": "codeQL.authenticateToGitHub",
        "title": "CodeQL: Authenticate to GitHub"
      },
      {
        "command": "codeQL.runQuery",
        "title": "CodeQL: Run Query"
      },
      {
        "command": "codeQL.runQueryOnMultipleDatabases",
        "title": "CodeQL: Run Query on Multiple Databases"
      },
      {
        "command": "codeQL.runVariantAnalysis",
        "title": "CodeQL: Run Variant Analysis"
      },
      {
        "command": "codeQL.exportVariantAnalysisResults",
        "title": "CodeQL: Export Variant Analysis Results"
      },
      {
        "command": "codeQL.runQueries",
        "title": "CodeQL: Run Queries in Selected Files"
      },
      {
        "command": "codeQL.quickEval",
        "title": "CodeQL: Quick Evaluation"
      },
      {
        "command": "codeQL.openReferencedFile",
        "title": "CodeQL: Open Referenced File"
      },
      {
        "command": "codeQL.previewQueryHelp",
        "title": "CodeQL: Preview Query Help"
      },
      {
        "command": "codeQL.quickQuery",
        "title": "CodeQL: Quick Query"
      },
      {
        "command": "codeQL.openDocumentation",
        "title": "CodeQL: Open Documentation"
      },
      {
        "command": "codeQL.copyVersion",
        "title": "CodeQL: Copy Version Information"
      },
      {
        "command": "codeQLDatabases.chooseDatabaseFolder",
        "title": "Choose Database from Folder",
        "icon": {
          "light": "media/light/folder-opened-plus.svg",
          "dark": "media/dark/folder-opened-plus.svg"
        }
      },
      {
        "command": "codeQLDatabases.removeOrphanedDatabases",
        "title": "Delete unused databases"
      },
      {
        "command": "codeQLDatabases.chooseDatabaseArchive",
        "title": "Choose Database from Archive",
        "icon": {
          "light": "media/light/archive-plus.svg",
          "dark": "media/dark/archive-plus.svg"
        }
      },
      {
        "command": "codeQLDatabases.chooseDatabaseInternet",
        "title": "Download Database",
        "icon": {
          "light": "media/light/cloud-download.svg",
          "dark": "media/dark/cloud-download.svg"
        }
      },
      {
        "command": "codeQLDatabases.chooseDatabaseGithub",
        "title": "Download Database from GitHub",
        "icon": {
          "light": "media/light/github.svg",
          "dark": "media/dark/github.svg"
        }
      },
      {
        "command": "codeQLDatabases.chooseDatabaseLgtm",
        "title": "Download from LGTM",
        "icon": {
          "light": "media/light/lgtm-plus.svg",
          "dark": "media/dark/lgtm-plus.svg"
        }
      },
      {
        "command": "codeQL.setCurrentDatabase",
        "title": "CodeQL: Set Current Database"
      },
      {
        "command": "codeQL.viewAst",
        "title": "CodeQL: View AST"
      },
      {
        "command": "codeQL.viewCfg",
        "title": "CodeQL: View CFG"
      },
      {
        "command": "codeQL.upgradeCurrentDatabase",
        "title": "CodeQL: Upgrade Current Database"
      },
      {
        "command": "codeQL.clearCache",
        "title": "CodeQL: Clear Cache"
      },
      {
        "command": "codeQL.installPackDependencies",
        "title": "CodeQL: Install Pack Dependencies"
      },
      {
        "command": "codeQL.downloadPacks",
        "title": "CodeQL: Download Packs"
      },
      {
        "command": "codeQLDatabases.setCurrentDatabase",
        "title": "Set Current Database"
      },
      {
        "command": "codeQLDatabases.removeDatabase",
        "title": "Remove Database"
      },
      {
        "command": "codeQLDatabases.upgradeDatabase",
        "title": "Upgrade Database"
      },
      {
        "command": "codeQLDatabases.renameDatabase",
        "title": "Rename Database"
      },
      {
        "command": "codeQLDatabases.openDatabaseFolder",
        "title": "Show Database Directory"
      },
      {
        "command": "codeQLDatabases.addDatabaseSource",
        "title": "Add Database Source to Workspace"
      },
      {
        "command": "codeQL.chooseDatabaseFolder",
        "title": "CodeQL: Choose Database from Folder"
      },
      {
        "command": "codeQL.chooseDatabaseArchive",
        "title": "CodeQL: Choose Database from Archive"
      },
      {
        "command": "codeQL.chooseDatabaseInternet",
        "title": "CodeQL: Download Database"
      },
      {
        "command": "codeQL.chooseDatabaseGithub",
        "title": "CodeQL: Download Database from GitHub"
      },
      {
        "command": "codeQL.chooseDatabaseLgtm",
        "title": "CodeQL: Download Database from LGTM"
      },
      {
        "command": "codeQLDatabases.sortByName",
        "title": "Sort by Name",
        "icon": {
          "light": "media/light/sort-alpha.svg",
          "dark": "media/dark/sort-alpha.svg"
        }
      },
      {
        "command": "codeQLDatabases.sortByDateAdded",
        "title": "Sort by Date Added",
        "icon": {
          "light": "media/light/sort-date.svg",
          "dark": "media/dark/sort-date.svg"
        }
      },
      {
        "command": "codeQL.checkForUpdatesToCLI",
        "title": "CodeQL: Check for CLI Updates"
      },
      {
        "command": "codeQLQueryHistory.openQuery",
        "title": "Open the Query that Produced these Results",
        "icon": {
          "light": "media/light/edit.svg",
          "dark": "media/dark/edit.svg"
        }
      },
      {
        "command": "codeQLQueryHistory.itemClicked",
        "title": "Open Query Results",
        "icon": {
          "light": "media/light/preview.svg",
          "dark": "media/dark/preview.svg"
        }
      },
      {
        "command": "codeQLQueryHistory.removeHistoryItem",
        "title": "Remove History Item(s)",
        "icon": {
          "light": "media/light/trash.svg",
          "dark": "media/dark/trash.svg"
        }
      },
      {
        "command": "codeQLQueryHistory.sortByName",
        "title": "Sort by Name",
        "icon": {
          "light": "media/light/sort-alpha.svg",
          "dark": "media/dark/sort-alpha.svg"
        }
      },
      {
        "command": "codeQLQueryHistory.sortByDate",
        "title": "Sort by Query Date",
        "icon": {
          "light": "media/light/sort-date.svg",
          "dark": "media/dark/sort-date.svg"
        }
      },
      {
        "command": "codeQLQueryHistory.sortByCount",
        "title": "Sort by Results Count",
        "icon": {
          "light": "media/light/sort-num.svg",
          "dark": "media/dark/sort-num.svg"
        }
      },
      {
        "command": "codeQLQueryHistory.showQueryLog",
        "title": "Show Query Log"
      },
      {
        "command": "codeQLQueryHistory.openQueryDirectory",
        "title": "Open Query Directory"
      },
      {
        "command": "codeQLQueryHistory.showEvalLog",
        "title": "Show Evaluator Log (Raw JSON)"
      },
      {
        "command": "codeQLQueryHistory.showEvalLogSummary",
        "title": "Show Evaluator Log (Summary Text)"
      },
      {
        "command": "codeQLQueryHistory.showEvalLogViewer",
        "title": "Show Evaluator Log (UI)"
      },
      {
        "command": "codeQLQueryHistory.cancel",
        "title": "Cancel"
      },
      {
        "command": "codeQLQueryHistory.showQueryText",
        "title": "Show Query Text"
      },
      {
        "command": "codeQLQueryHistory.exportResults",
        "title": "Export Results"
      },
      {
        "command": "codeQLQueryHistory.viewCsvResults",
        "title": "View Results (CSV)"
      },
      {
        "command": "codeQLQueryHistory.viewCsvAlerts",
        "title": "View Alerts (CSV)"
      },
      {
        "command": "codeQLQueryHistory.viewSarifAlerts",
        "title": "View Alerts (SARIF)"
      },
      {
        "command": "codeQLQueryHistory.viewDil",
        "title": "View DIL"
      },
      {
        "command": "codeQLQueryHistory.setLabel",
        "title": "Set Label"
      },
      {
        "command": "codeQLQueryHistory.compareWith",
        "title": "Compare Results"
      },
      {
        "command": "codeQLQueryHistory.openOnGithub",
        "title": "Open Variant Analysis on GitHub"
      },
      {
        "command": "codeQLQueryHistory.copyRepoList",
        "title": "Copy Repository List"
      },
      {
        "command": "codeQLQueryResults.nextPathStep",
        "title": "CodeQL: Show Next Step on Path"
      },
      {
        "command": "codeQLQueryResults.previousPathStep",
        "title": "CodeQL: Show Previous Step on Path"
      },
      {
        "command": "codeQL.restartQueryServer",
        "title": "CodeQL: Restart Query Server"
      },
      {
        "command": "codeQLTests.showOutputDifferences",
        "title": "Show Test Output Differences"
      },
      {
        "command": "codeQLTests.acceptOutput",
        "title": "Accept Test Output"
      },
      {
        "command": "codeQLAstViewer.gotoCode",
        "title": "Go To Code"
      },
      {
        "command": "codeQLAstViewer.clear",
        "title": "Clear AST",
        "icon": {
          "light": "media/light/clear-all.svg",
          "dark": "media/dark/clear-all.svg"
        }
      },
      {
        "command": "codeQLEvalLogViewer.clear",
        "title": "Clear Viewer",
        "icon": {
          "light": "media/light/clear-all.svg",
          "dark": "media/dark/clear-all.svg"
        }
      },
      {
        "command": "codeQL.gotoQL",
        "title": "CodeQL: Go to QL Code",
        "enablement": "codeql.hasQLSource"
      }
    ],
    "menus": {
      "view/title": [
        {
          "command": "codeQLDatabases.sortByName",
          "when": "view == codeQLDatabases",
          "group": "navigation"
        },
        {
          "command": "codeQLDatabases.sortByDateAdded",
          "when": "view == codeQLDatabases",
          "group": "navigation"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseFolder",
          "when": "view == codeQLDatabases",
          "group": "navigation"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseArchive",
          "when": "view == codeQLDatabases",
          "group": "navigation"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseInternet",
          "when": "view == codeQLDatabases",
          "group": "navigation"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseGithub",
          "when": "view == codeQLDatabases",
          "group": "navigation"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseLgtm",
          "when": "view == codeQLDatabases",
          "group": "navigation"
        },
        {
          "command": "codeQLQueryHistory.openQuery",
          "when": "view == codeQLQueryHistory",
          "group": "navigation"
        },
        {
          "command": "codeQLQueryHistory.itemClicked",
          "when": "view == codeQLQueryHistory",
          "group": "navigation"
        },
        {
          "command": "codeQLQueryHistory.removeHistoryItem",
          "when": "view == codeQLQueryHistory",
          "group": "navigation"
        },
        {
          "command": "codeQLQueryHistory.sortByName",
          "when": "view == codeQLQueryHistory",
          "group": "navigation"
        },
        {
          "command": "codeQLQueryHistory.sortByDate",
          "when": "view == codeQLQueryHistory",
          "group": "navigation"
        },
        {
          "command": "codeQLQueryHistory.sortByCount",
          "when": "view == codeQLQueryHistory",
          "group": "navigation"
        },
        {
          "command": "codeQLAstViewer.clear",
          "when": "view == codeQLAstViewer",
          "group": "navigation"
        },
        {
          "command": "codeQLEvalLogViewer.clear",
          "when": "view == codeQLEvalLogViewer",
          "group": "navigation"
        }
      ],
      "view/item/context": [
        {
          "command": "codeQLDatabases.setCurrentDatabase",
          "group": "inline",
          "when": "view == codeQLDatabases && viewItem != currentDatabase"
        },
        {
          "command": "codeQLDatabases.removeDatabase",
          "group": "9_qlCommands",
          "when": "view == codeQLDatabases"
        },
        {
          "command": "codeQLDatabases.upgradeDatabase",
          "group": "9_qlCommands",
          "when": "view == codeQLDatabases"
        },
        {
          "command": "codeQLDatabases.renameDatabase",
          "group": "9_qlCommands",
          "when": "view == codeQLDatabases"
        },
        {
          "command": "codeQLDatabases.openDatabaseFolder",
          "group": "9_qlCommands",
          "when": "view == codeQLDatabases"
        },
        {
          "command": "codeQLDatabases.addDatabaseSource",
          "group": "9_qlCommands",
          "when": "view == codeQLDatabases"
        },
        {
          "command": "codeQLQueryHistory.openQuery",
          "group": "9_qlCommands",
          "when": "view == codeQLQueryHistory"
        },
        {
          "command": "codeQLQueryHistory.removeHistoryItem",
          "group": "9_qlCommands",
          "when": "viewItem == interpretedResultsItem || viewItem == rawResultsItem || viewItem == remoteResultsItem || viewItem == cancelledResultsItem"
        },
        {
          "command": "codeQLQueryHistory.setLabel",
          "group": "9_qlCommands",
          "when": "view == codeQLQueryHistory"
        },
        {
          "command": "codeQLQueryHistory.compareWith",
          "group": "9_qlCommands",
          "when": "viewItem == rawResultsItem || viewItem == interpretedResultsItem"
        },
        {
          "command": "codeQLQueryHistory.showQueryLog",
          "group": "9_qlCommands",
          "when": "viewItem == rawResultsItem || viewItem == interpretedResultsItem"
        },
        {
          "command": "codeQLQueryHistory.openQueryDirectory",
          "group": "9_qlCommands",
          "when": "view == codeQLQueryHistory && !hasRemoteServer"
        },
        {
          "command": "codeQLQueryHistory.showEvalLog",
          "group": "9_qlCommands",
          "when": "codeql.supportsEvalLog && viewItem == rawResultsItem || codeql.supportsEvalLog && viewItem == interpretedResultsItem || codeql.supportsEvalLog && viewItem == cancelledResultsItem"
        },
        {
          "command": "codeQLQueryHistory.showEvalLogSummary",
          "group": "9_qlCommands",
          "when": "codeql.supportsEvalLog && viewItem == rawResultsItem || codeql.supportsEvalLog && viewItem == interpretedResultsItem || codeql.supportsEvalLog && viewItem == cancelledResultsItem"
        },
        {
          "command": "codeQLQueryHistory.showEvalLogViewer",
          "group": "9_qlCommands",
          "when": "config.codeQL.canary && codeql.supportsEvalLog && viewItem == rawResultsItem || config.codeQL.canary && codeql.supportsEvalLog && viewItem == interpretedResultsItem || config.codeQL.canary && codeql.supportsEvalLog && viewItem == cancelledResultsItem"
        },
        {
          "command": "codeQLQueryHistory.showQueryText",
          "group": "9_qlCommands",
          "when": "view == codeQLQueryHistory"
        },
        {
          "command": "codeQLQueryHistory.exportResults",
          "group": "9_qlCommands",
          "when": "view == codeQLQueryHistory && viewItem == remoteResultsItem"
        },
        {
          "command": "codeQLQueryHistory.viewCsvResults",
          "group": "9_qlCommands",
          "when": "viewItem == rawResultsItem"
        },
        {
          "command": "codeQLQueryHistory.viewCsvAlerts",
          "group": "9_qlCommands",
          "when": "viewItem == interpretedResultsItem"
        },
        {
          "command": "codeQLQueryHistory.viewSarifAlerts",
          "group": "9_qlCommands",
          "when": "viewItem == interpretedResultsItem"
        },
        {
          "command": "codeQLQueryHistory.viewDil",
          "group": "9_qlCommands",
          "when": "viewItem == rawResultsItem || viewItem == interpretedResultsItem"
        },
        {
          "command": "codeQLQueryHistory.cancel",
          "group": "9_qlCommands",
          "when": "viewItem == inProgressResultsItem || viewItem == inProgressRemoteResultsItem"
        },
        {
          "command": "codeQLQueryHistory.openOnGithub",
          "group": "9_qlCommands",
          "when": "viewItem == remoteResultsItem || viewItem == inProgressRemoteResultsItem || viewItem == cancelledResultsItem"
        },
        {
          "command": "codeQLQueryHistory.copyRepoList",
          "group": "9_qlCommands",
          "when": "viewItem == remoteResultsItem"
        },
        {
          "command": "codeQLTests.showOutputDifferences",
          "group": "qltest@1",
          "when": "viewItem == testWithSource"
        },
        {
          "command": "codeQLTests.acceptOutput",
          "group": "qltest@2",
          "when": "viewItem == testWithSource"
        }
      ],
      "explorer/context": [
        {
          "command": "codeQL.setCurrentDatabase",
          "group": "9_qlCommands",
          "when": "resourceScheme == codeql-zip-archive || explorerResourceIsFolder || resourceExtname == .zip"
        },
        {
          "command": "codeQL.viewAst",
          "group": "9_qlCommands",
          "when": "resourceScheme == codeql-zip-archive && !explorerResourceIsFolder && !listMultiSelection"
        },
        {
          "command": "codeQL.viewCfg",
          "group": "9_qlCommands",
          "when": "resourceScheme == codeql-zip-archive && config.codeQL.canary"
        },
        {
          "command": "codeQL.runQueries",
          "group": "9_qlCommands",
          "when": "resourceScheme != codeql-zip-archive"
        },
        {
          "command": "codeQL.openReferencedFile",
          "group": "9_qlCommands",
          "when": "resourceExtname == .qlref"
        },
        {
          "command": "codeQL.previewQueryHelp",
          "group": "9_qlCommands",
          "when": "resourceExtname == .qhelp && isWorkspaceTrusted"
        }
      ],
      "commandPalette": [
        {
          "command": "codeQL.authenticateToGitHub",
          "when": "config.codeQL.canary"
        },
        {
          "command": "codeQL.runQuery",
          "when": "resourceLangId == ql && resourceExtname == .ql"
        },
        {
          "command": "codeQL.runQueryOnMultipleDatabases",
          "when": "resourceLangId == ql && resourceExtname == .ql"
        },
        {
          "command": "codeQL.runVariantAnalysis",
          "when": "config.codeQL.canary && editorLangId == ql && resourceExtname == .ql"
        },
        {
          "command": "codeQL.exportVariantAnalysisResults",
          "when": "config.codeQL.canary"
        },
        {
          "command": "codeQL.runQueries",
          "when": "false"
        },
        {
          "command": "codeQL.quickEval",
          "when": "editorLangId == ql"
        },
        {
          "command": "codeQL.openReferencedFile",
          "when": "resourceExtname == .qlref"
        },
        {
          "command": "codeQL.previewQueryHelp",
          "when": "resourceExtname == .qhelp && isWorkspaceTrusted"
        },
        {
          "command": "codeQL.setCurrentDatabase",
          "when": "false"
        },
        {
          "command": "codeQL.viewAst",
          "when": "resourceScheme == codeql-zip-archive"
        },
        {
          "command": "codeQL.viewCfg",
          "when": "resourceScheme == codeql-zip-archive && config.codeQL.canary"
        },
        {
          "command": "codeQLDatabases.setCurrentDatabase",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.renameDatabase",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.openDatabaseFolder",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.addDatabaseSource",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.sortByName",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.sortByDateAdded",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.removeDatabase",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseFolder",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseArchive",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.removeOrphanedDatabases",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseInternet",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseGithub",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.chooseDatabaseLgtm",
          "when": "false"
        },
        {
          "command": "codeQLDatabases.upgradeDatabase",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.openQuery",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.removeHistoryItem",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.itemClicked",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.showQueryLog",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.showEvalLog",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.showEvalLogSummary",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.showEvalLogViewer",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.openQueryDirectory",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.cancel",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.openOnGithub",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.copyRepoList",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.showQueryText",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.exportResults",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.viewCsvResults",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.viewCsvAlerts",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.viewSarifAlerts",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.viewDil",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.setLabel",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.compareWith",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.sortByName",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.sortByDate",
          "when": "false"
        },
        {
          "command": "codeQLQueryHistory.sortByCount",
          "when": "false"
        },
        {
          "command": "codeQLAstViewer.gotoCode",
          "when": "false"
        },
        {
          "command": "codeQLAstViewer.clear",
          "when": "false"
        },
        {
          "command": "codeQLEvalLogViewer.clear",
          "when": "false"
        },
        {
          "command": "codeQLTests.acceptOutput",
          "when": "false"
        },
        {
          "command": "codeQLTests.showOutputDifferences",
          "when": "false"
        }
      ],
      "editor/context": [
        {
          "command": "codeQL.runQuery",
          "when": "editorLangId == ql && resourceExtname == .ql"
        },
        {
          "command": "codeQL.runQueryOnMultipleDatabases",
          "when": "editorLangId == ql && resourceExtname == .ql"
        },
        {
          "command": "codeQL.runVariantAnalysis",
          "when": "config.codeQL.canary && editorLangId == ql && resourceExtname == .ql"
        },
        {
          "command": "codeQL.viewAst",
          "when": "resourceScheme == codeql-zip-archive"
        },
        {
          "command": "codeQL.viewCfg",
          "when": "resourceScheme == codeql-zip-archive && config.codeQL.canary"
        },
        {
          "command": "codeQL.quickEval",
          "when": "editorLangId == ql"
        },
        {
          "command": "codeQL.openReferencedFile",
          "when": "resourceExtname == .qlref"
        },
        {
          "command": "codeQL.previewQueryHelp",
          "when": "resourceExtname == .qhelp && isWorkspaceTrusted"
        },
        {
          "command": "codeQL.gotoQL",
          "when": "editorLangId == ql-summary && config.codeQL.canary"
        }
      ]
    },
    "viewsContainers": {
      "activitybar": [
        {
          "id": "ql-container",
          "title": "CodeQL",
          "icon": "media/logo.svg"
        }
      ]
    },
    "views": {
      "ql-container": [
        {
          "id": "codeQLDatabases",
          "name": "Databases"
        },
        {
          "id": "codeQLQueryHistory",
          "name": "Query History"
        },
        {
          "id": "codeQLAstViewer",
          "name": "AST Viewer"
        },
        {
          "id": "codeQLEvalLogViewer",
          "name": "Evaluator Log Viewer",
          "when": "config.codeQL.canary"
        }
      ]
    },
    "viewsWelcome": [
      {
        "view": "codeQLAstViewer",
        "contents": "Run the 'CodeQL: View AST' command on an open source file from a CodeQL database.\n[View AST](command:codeQL.viewAst)"
      },
      {
        "view": "codeQLQueryHistory",
        "contents": "Run the 'CodeQL: Run Query' command on a QL query.\n[Run Query](command:codeQL.runQuery)"
      },
      {
        "view": "codeQLDatabases",
        "contents": "Add a CodeQL database:\n[From a folder](command:codeQLDatabases.chooseDatabaseFolder)\n[From an archive](command:codeQLDatabases.chooseDatabaseArchive)\n[From a URL (as a zip file)](command:codeQLDatabases.chooseDatabaseInternet)\n[From GitHub](command:codeQLDatabases.chooseDatabaseGithub)\n[From LGTM](command:codeQLDatabases.chooseDatabaseLgtm)"
      },
      {
        "view": "codeQLEvalLogViewer",
        "contents": "Run the 'Show Evaluator Log (UI)' command on a CodeQL query run in the Query History view."
      }
    ]
  },
  "scripts": {
    "build": "gulp",
    "watch": "npm-run-all -p watch:*",
    "watch:extension": "tsc --watch",
    "watch:webpack": "gulp watchView",
    "test": "mocha --exit -r ts-node/register test/pure-tests/**/*.ts",
    "preintegration": "rm -rf ./out/vscode-tests && gulp",
    "integration": "node ./out/vscode-tests/run-integration-tests.js no-workspace,minimal-workspace",
    "cli-integration": "npm run preintegration && node ./out/vscode-tests/run-integration-tests.js cli-integration",
    "update-vscode": "node ./node_modules/vscode/bin/install",
    "format": "tsfmt -r && eslint src test --ext .ts,.tsx --fix",
    "lint": "eslint src test --ext .ts,.tsx --max-warnings=0",
    "format-staged": "lint-staged",
    "storybook": "start-storybook -p 6006",
    "build-storybook": "build-storybook"
  },
  "dependencies": {
    "@octokit/plugin-retry": "^3.0.9",
    "@octokit/rest": "^18.5.6",
    "@primer/octicons-react": "^16.3.0",
    "@primer/react": "^35.0.0",
    "@vscode/codicons": "^0.0.31",
    "@vscode/webview-ui-toolkit": "^1.0.1",
    "child-process-promise": "^2.2.1",
    "classnames": "~2.2.6",
    "d3": "^7.6.1",
    "d3-graphviz": "^2.6.1",
    "fs-extra": "^10.0.1",
    "glob-promise": "^4.2.2",
    "immutable": "^4.0.0",
    "js-yaml": "^4.1.0",
    "minimist": "~1.2.6",
    "nanoid": "^3.2.0",
    "node-fetch": "~2.6.7",
    "path-browserify": "^1.0.1",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "semver": "~7.3.2",
    "source-map": "^0.7.4",
    "source-map-support": "^0.5.21",
    "stream": "^0.0.2",
    "stream-chain": "~2.2.4",
    "stream-json": "~1.7.3",
    "styled-components": "^5.3.3",
    "tmp": "^0.1.0",
    "tmp-promise": "~3.0.2",
    "tree-kill": "~1.2.2",
    "unzipper": "~0.10.5",
    "vscode-extension-telemetry": "^0.1.6",
    "vscode-jsonrpc": "^5.0.1",
    "vscode-languageclient": "^6.1.3",
    "vscode-test-adapter-api": "~1.7.0",
    "vscode-test-adapter-util": "~0.7.0",
    "zip-a-folder": "~1.1.3"
  },
  "devDependencies": {
    "@babel/core": "^7.18.13",
    "@storybook/addon-actions": "^6.5.10",
    "@storybook/addon-essentials": "^6.5.10",
    "@storybook/addon-interactions": "^6.5.10",
    "@storybook/addon-links": "^6.5.10",
    "@storybook/builder-webpack5": "^6.5.10",
    "@storybook/manager-webpack5": "^6.5.10",
    "@storybook/react": "^6.5.10",
    "@storybook/testing-library": "^0.0.13",
    "@types/chai": "^4.1.7",
    "@types/chai-as-promised": "~7.1.2",
    "@types/child-process-promise": "^2.2.1",
    "@types/classnames": "~2.2.9",
    "@types/d3": "^7.4.0",
    "@types/d3-graphviz": "^2.6.6",
    "@types/del": "^4.0.0",
    "@types/fs-extra": "^9.0.6",
    "@types/glob": "^7.1.1",
    "@types/google-protobuf": "^3.2.7",
    "@types/gulp": "^4.0.9",
    "@types/gulp-replace": "^1.1.0",
    "@types/gulp-sourcemaps": "0.0.32",
    "@types/js-yaml": "^3.12.5",
    "@types/jszip": "~3.1.6",
    "@types/mocha": "^9.0.0",
    "@types/nanoid": "^3.0.0",
    "@types/node": "^16.11.25",
    "@types/node-fetch": "~2.5.2",
    "@types/proxyquire": "~1.3.28",
    "@types/react": "^17.0.2",
    "@types/react-dom": "^17.0.2",
    "@types/sarif": "~2.1.2",
    "@types/semver": "~7.2.0",
    "@types/sinon": "~7.5.2",
    "@types/sinon-chai": "~3.2.3",
    "@types/stream-chain": "~2.0.1",
    "@types/stream-json": "~1.7.1",
    "@types/through2": "^2.0.36",
    "@types/tmp": "^0.1.0",
    "@types/unzipper": "~0.10.1",
    "@types/vscode": "^1.59.0",
    "@types/webpack": "^5.28.0",
    "@types/webpack-env": "^1.18.0",
    "@types/xml2js": "~0.4.4",
    "@typescript-eslint/eslint-plugin": "^4.26.0",
    "@typescript-eslint/parser": "^4.26.0",
    "ansi-colors": "^4.1.1",
    "applicationinsights": "^1.8.7",
    "babel-loader": "^8.2.5",
    "chai": "^4.2.0",
    "chai-as-promised": "~7.1.1",
    "css-loader": "~3.1.0",
    "del": "^6.0.0",
    "eslint": "~6.8.0",
    "eslint-plugin-react": "~7.19.0",
    "eslint-plugin-storybook": "^0.6.4",
    "file-loader": "^6.2.0",
    "glob": "^7.1.4",
    "gulp": "^4.0.2",
    "gulp-replace": "^1.1.3",
    "gulp-sourcemaps": "^3.0.0",
    "gulp-typescript": "^5.0.1",
    "husky": "~4.3.8",
    "lint-staged": "~10.2.2",
    "mini-css-extract-plugin": "^2.6.1",
    "mocha": "^10.0.0",
    "mocha-sinon": "~2.1.2",
    "npm-run-all": "^4.1.5",
    "prettier": "~2.0.5",
    "proxyquire": "~2.1.3",
    "sinon": "~13.0.1",
    "sinon-chai": "~3.5.0",
    "through2": "^4.0.2",
    "ts-loader": "^8.1.0",
    "ts-node": "^10.7.0",
    "ts-protoc-gen": "^0.9.0",
    "typescript": "^4.5.5",
    "typescript-formatter": "^7.2.2",
    "vsce": "^2.7.0",
    "vscode-test": "^1.4.0",
    "webpack": "^5.62.2",
    "webpack-cli": "^4.6.0"
  },
  "husky": {
    "hooks": {
      "pre-commit": "npm run format-staged",
      "pre-push": "npm run lint && scripts/forbid-mocha-only"
    }
  },
  "lint-staged": {
    "./**/*.{json,css,scss}": [
      "prettier --write"
    ],
    "./**/*.{ts,tsx}": [
      "tsfmt -r",
      "eslint --fix"
    ]
  },
  "resolutions": {
    "glob-parent": "6.0.0"
  }
}
