diff --git a/.eslintrc.js b/.eslintrc.js
index 5a1fd3933..050209c7f 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -21,7 +21,7 @@ module.exports = {
rules: {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-non-null-assertion": "off",
- "@typescript-eslint/semi": ["error", "always"],
+ "@typescript-eslint/no-require-imports": "off",
// Allow unused vars if prefixed by _
"@typescript-eslint/no-unused-vars": [
"warn",
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 85a3417f6..377cb83ac 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -19,10 +19,10 @@
"args": [
// Launch VSCode using a specific profile to ensure that user settings are not used.
// This profile must be imported into vscode before running this launch configuration.
- // The profile can be found under /test/csharp-standalone-profile.
+ // The profile can be found under /test/csharp-test-profile.
"--profile",
- "csharp-standalone-profile",
- "${workspaceRoot}/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace",
+ "csharp-test-profile",
+ "${workspaceRoot}/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace",
"--extensionDevelopmentPath=${workspaceRoot}",
"--extensionTestsPath=${workspaceRoot}/out/test/lsptoolshost/integrationTests"
],
@@ -36,6 +36,31 @@
"preLaunchTask": "buildDev",
"internalConsoleOptions": "openOnSessionStart"
},
+ {
+ "name": "[DevKit] Launch Current File slnWithCsproj Integration Tests",
+ "type": "extensionHost",
+ "request": "launch",
+ "runtimeExecutable": "${execPath}",
+ "args": [
+ // Launch VSCode using a specific profile to ensure that user settings are not used.
+ // This profile must be imported into vscode before running this launch configuration.
+ // The profile can be found under /test/csharp-test-profile.
+ "--profile",
+ "csharp-test-profile",
+ "${workspaceRoot}/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace",
+ "--extensionDevelopmentPath=${workspaceRoot}",
+ "--extensionTestsPath=${workspaceRoot}/out/test/lsptoolshost/integrationTests"
+ ],
+ "env": {
+ "CODE_EXTENSIONS_PATH": "${workspaceRoot}",
+ "TEST_FILE_FILTER": "${file}",
+ },
+ "sourceMaps": true,
+ "outFiles": ["${workspaceRoot}/dist/*.js", "${workspaceRoot}/out/test/**/*.js"],
+ "resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"],
+ "preLaunchTask": "buildDev",
+ "internalConsoleOptions": "openOnSessionStart"
+ },
{
"name": "Launch Current File BasicRazorApp2_1 Integration Tests",
"type": "extensionHost",
@@ -44,9 +69,9 @@
"args": [
// Launch VSCode using a specific profile to ensure that user settings are not used.
// This profile must be imported into vscode before running this launch configuration.
- // The profile can be found under /test/csharp-standalone-profile.
+ // The profile can be found under /test/csharp-test-profile.
"--profile",
- "csharp-standalone-profile",
+ "csharp-test-profile",
"${workspaceRoot}/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/lsp_tools_host_BasicRazorApp2_1.code-workspace",
"--extensionDevelopmentPath=${workspaceRoot}",
"--extensionTestsPath=${workspaceRoot}/out/test/razor/razorIntegrationTests"
@@ -69,9 +94,9 @@
"args": [
// Launch VSCode using a specific profile to ensure that user settings are not used.
// This profile must be imported into vscode before running this launch configuration.
- // The profile can be found under /test/csharp-standalone-profile.
+ // The profile can be found under /test/csharp-test-profile.
"--profile",
- "csharp-standalone-profile",
+ "csharp-test-profile",
"${workspaceRoot}/test/omnisharp/omnisharpIntegrationTests/testAssets/${input:omnisharpAssetName}/.vscode/omnisharp_${input:omnisharpAssetName}.code-workspace",
"--extensionDevelopmentPath=${workspaceRoot}",
"--extensionTestsPath=${workspaceRoot}/out/test/omnisharp/omnisharpIntegrationTests"
@@ -94,9 +119,9 @@
"args": [
// Launch VSCode using a specific profile to ensure that user settings are not used.
// This profile must be imported into vscode before running this launch configuration.
- // The profile can be found under /test/csharp-standalone-profile.
+ // The profile can be found under /test/csharp-test-profile.
"--profile",
- "csharp-standalone-profile",
+ "csharp-test-profile",
"${workspaceRoot}/test/omnisharp/omnisharpIntegrationTests/testAssets/${input:omnisharpAssetName}/.vscode/omnisharp_lsp_${input:omnisharpAssetName}.code-workspace",
"--extensionDevelopmentPath=${workspaceRoot}",
"--extensionTestsPath=${workspaceRoot}/out/test/omnisharp/omnisharpIntegrationTests"
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d885f3285..f26f949b6 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -56,9 +56,9 @@ To run all tests, execute `npm run test`.
To debug unit tests locally, press F5 in VS Code with the "Launch Tests" debug configuration selected.
To debug integration tests
-1. Import the `csharp-standalone-profile.code-profile` in VSCode to setup a clean profile in which to run integration tests. This must be imported at least once to use the launch configurations.
+1. Import the `csharp-test-profile.code-profile` in VSCode to setup a clean profile in which to run integration tests. This must be imported at least once to use the launch configurations (ensure the extensions are updated in the profile).
2. Open any integration test file and F5 launch with the correct launch configuration selected.
- - For integration tests inside `test/lsptoolshost`, use `Launch Current File slnWithCsproj Integration Tests`
+ - For integration tests inside `test/lsptoolshost`, use either `Launch Current File slnWithCsproj Integration Tests` or `[DevKit] Launch Current File slnWithCsproj Integration Tests` (to run tests using C# + C# Dev Kit)
- For integration tests inside `test/razor`, use `Launch Current File BasicRazorApp2_1 Integration Tests`
- For integration tests inside `test/omnisharp`, use one of the `Omnisharp:` current file profiles
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 72375d570..ce5870df0 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -24,58 +24,55 @@ stages:
isOfficial: false
signType: test
-- stage: Test_Linux_Stage
- displayName: Test Linux
+- stage:
+ displayName: Test Linux (.NET 6)
dependsOn: []
jobs:
- - job: Test_Linux_Job
- displayName: Test Linux
- strategy:
- matrix:
- DotNet6:
- containerName: mcr.microsoft.com/dotnet/sdk:6.0
- DotNet7:
- containerName: mcr.microsoft.com/dotnet/sdk:7.0
- DotNet8:
- containerName: mcr.microsoft.com/dotnet/sdk:8.0
- pool:
- name: NetCore-Public
- demands: ImageOverride -equals 1es-ubuntu-2004-open
- container: $[ variables['containerName'] ]
- steps:
- - template: azure-pipelines/test.yml
- parameters:
- # Prefer the dotnet from the container.
- installDotNet: false
- installAdditionalLinuxDependencies: true
+ - template: azure-pipelines/test-matrix.yml
+ parameters:
+ # Prefer the dotnet from the container.
+ installDotNet: false
+ installAdditionalLinuxDependencies: true
+ pool:
+ name: NetCore-Public
+ demands: ImageOverride -equals 1es-ubuntu-2004-open
+ containerName: mcr.microsoft.com/dotnet/sdk:6.0
+
+- stage:
+ displayName: Test Linux (.NET 8)
+ dependsOn: []
+ jobs:
+ - template: azure-pipelines/test-matrix.yml
+ parameters:
+ # Prefer the dotnet from the container.
+ installDotNet: false
+ installAdditionalLinuxDependencies: true
+ pool:
+ name: NetCore-Public
+ demands: ImageOverride -equals 1es-ubuntu-2004-open
+ containerName: mcr.microsoft.com/dotnet/sdk:8.0
- stage: Test_Windows_Stage
displayName: Test Windows
dependsOn: []
jobs:
- - job: Test_Windows_Job
- displayName: Test Windows
- pool:
- name: NetCore-Public
- demands: ImageOverride -equals 1es-windows-2022-open
- steps:
- - template: azure-pipelines/test.yml
- parameters:
- installDotNet: true
+ - template: azure-pipelines/test-matrix.yml
+ parameters:
+ installDotNet: true
+ pool:
+ name: NetCore-Public
+ demands: ImageOverride -equals 1es-windows-2022-open
- stage: Test_MacOS_Stage
displayName: Test MacOS
dependsOn: []
jobs:
- - job: Test_MacOS_Job
- displayName: Test MacOS
- pool:
- name: Azure Pipelines
- vmImage: macOS-13
- steps:
- - template: azure-pipelines/test.yml
- parameters:
- installDotNet: true
+ - template: azure-pipelines/test-matrix.yml
+ parameters:
+ installDotNet: true
+ pool:
+ name: Azure Pipelines
+ vmImage: macOS-13
- stage: Test_OmniSharp
displayName: Test OmniSharp
diff --git a/azure-pipelines/test-matrix.yml b/azure-pipelines/test-matrix.yml
new file mode 100644
index 000000000..dacf360ff
--- /dev/null
+++ b/azure-pipelines/test-matrix.yml
@@ -0,0 +1,30 @@
+parameters:
+ - name: pool
+ type: object
+ - name: containerName
+ type: string
+ default: ''
+ - name: installDotNet
+ type: boolean
+ - name: installAdditionalLinuxDependencies
+ type: boolean
+ default: false
+
+jobs:
+- job:
+ strategy:
+ matrix:
+ CSharpTests:
+ npmCommand: 'test:withoutDevKit'
+ DevKitTests:
+ npmCommand: test:integration:devkit
+ pool: ${{ parameters.pool }}
+ ${{ if parameters.containerName }}:
+ container: ${{ parameters.containerName }}
+ steps:
+ - template: /azure-pipelines/test.yml@self
+ parameters:
+ # Prefer the dotnet from the container.
+ installDotNet: false
+ installAdditionalLinuxDependencies: true
+ npmCommand: $(npmCommand)
\ No newline at end of file
diff --git a/azure-pipelines/test.yml b/azure-pipelines/test.yml
index e4da1d476..bde85db28 100644
--- a/azure-pipelines/test.yml
+++ b/azure-pipelines/test.yml
@@ -4,6 +4,8 @@ parameters:
- name: installAdditionalLinuxDependencies
type: boolean
default: false
+ - name: npmCommand
+ type: string
steps:
- checkout: self
@@ -23,8 +25,8 @@ steps:
parameters:
installAdditionalLinuxDependencies: ${{ parameters.installAdditionalLinuxDependencies }}
-- script: npm run test
- displayName: 🧪 Run unit and integration tests
+- script: npm run ${{ parameters.npmCommand }}
+ displayName: 🧪 Run $(Agent.JobName)
env:
DISPLAY: :99.0
@@ -37,11 +39,11 @@ steps:
searchFolder: '$(Build.SourcesDirectory)/out'
publishRunAttachments: true
mergeTestResults: true
- testRunTitle: $(Agent.JobName) (Attempt $(System.JobAttempt))
+ testRunTitle: $(System.StageDisplayName) $(Agent.JobName) (Attempt $(System.JobAttempt))
- task: PublishPipelineArtifact@1
condition: failed()
displayName: 'Upload integration test logs'
inputs:
- targetPath: '$(Build.SourcesDirectory)/.vscode-test/user-data/logs'
- artifactName: 'VSCode Test Logs ($(Agent.JobName)-$(System.JobAttempt))'
+ targetPath: '$(Build.SourcesDirectory)/out/logs'
+ artifactName: 'Test Logs ($(System.StageDisplayName)-$(Agent.JobName)-$(System.JobAttempt))'
diff --git a/jest.config.ts b/jest.config.ts
index cf4a2d1de..3b98eb49c 100644
--- a/jest.config.ts
+++ b/jest.config.ts
@@ -27,7 +27,8 @@ const config: Config = {
// Azure DevOps does not display test suites (it ignores them entirely).
// So we have to put all the info in the test case name so the UI shows anything relatively useful.
// See https://github.com/microsoft/azure-pipelines-tasks/issues/7659
- titleTemplate: '{filename} / {suitename} / {title}',
+ classNameTemplate: '{suitename}',
+ titleTemplate: `${process.env.JEST_SUITE_NAME} {suitename} / {title}`,
},
],
],
diff --git a/package-lock.json b/package-lock.json
index b3e8fbe0d..c290c8ef6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -49,15 +49,15 @@
"@types/fs-extra": "5.0.4",
"@types/gulp": "4.0.5",
"@types/minimist": "1.2.1",
- "@types/node": "16.11.38",
+ "@types/node": "20.14.8",
"@types/semver": "7.3.13",
"@types/tmp": "0.0.33",
"@types/unzipper": "^0.9.1",
"@types/uuid": "^9.0.1",
"@types/vscode": "1.73.0",
"@types/yauzl": "2.10.0",
- "@typescript-eslint/eslint-plugin": "^5.61.0",
- "@typescript-eslint/parser": "^5.61.0",
+ "@typescript-eslint/eslint-plugin": "^8.5.0",
+ "@typescript-eslint/parser": "^8.5.0",
"@vscode/l10n-dev": "^0.0.35",
"@vscode/test-electron": "2.3.8",
"@vscode/vsce": "3.0.0",
@@ -65,7 +65,6 @@
"del": "3.0.0",
"eslint": "^8.43.0",
"eslint-config-prettier": "^8.8.0",
- "eslint-config-standard-with-typescript": "^35.0.0",
"eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0",
@@ -89,7 +88,7 @@
"ts-jest": "^29.1.1",
"ts-loader": "9.0.0",
"ts-node": "9.1.1",
- "typescript": "^5.1.6",
+ "typescript": "5.6.2",
"unzipper": "0.10.11",
"vscode-oniguruma": "^1.6.1",
"vscode-textmate": "^6.0.0",
@@ -540,29 +539,6 @@
"url": "https://opencollective.com/babel"
}
},
- "node_modules/@babel/core/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/core/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@babel/core/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-6.3.1.tgz",
@@ -1016,23 +992,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/traverse/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/@babel/traverse/node_modules/globals": {
"version": "11.12.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-11.12.0.tgz",
@@ -1042,12 +1001,6 @@
"node": ">=4"
}
},
- "node_modules/@babel/traverse/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@babel/types": {
"version": "7.23.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@babel/types/-/types-7.23.0.tgz",
@@ -1093,23 +1046,25 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.5.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
- "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
+ "version": "4.11.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
+ "integrity": "sha1-sP/QMStKP9LW93I35ySKWtOmgK4=",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "2.0.3",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
- "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
+ "version": "2.1.4",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.5.2",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -1127,31 +1082,16 @@
"node_modules/@eslint/eslintrc/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/@eslint/eslintrc/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=",
"dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
+ "license": "Python-2.0"
},
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -1162,8 +1102,9 @@
"node_modules/@eslint/eslintrc/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -1171,17 +1112,12 @@
"node": "*"
}
},
- "node_modules/@eslint/eslintrc/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@eslint/js": {
- "version": "8.43.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.43.0.tgz",
- "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==",
+ "version": "8.57.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha1-pUF66EJ4c/HdCLcLNXS0U+Z7X38=",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
@@ -1210,42 +1146,20 @@
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.10",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
- "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
+ "version": "0.11.14",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha1-145IGgOfdWbsyWYLTqf+ax/sRCs=",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
},
"engines": {
"node": ">=10.10.0"
}
},
- "node_modules/@humanwhocodes/config-array/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@humanwhocodes/config-array/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -1260,10 +1174,11 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true
+ "version": "2.0.3",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha1-Siho111taWPkI7z5C3/RvjQ0CdM=",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
@@ -2995,9 +2910,13 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "16.11.38",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/node/-/node-16.11.38.tgz",
- "integrity": "sha512-hjO/0K140An3GWDw2HJfq7gko3wWeznbjXgg+rzPdVzhe198hp4x2i1dgveAOEiFKd8sOilAxzoSJiVv5P/CUg=="
+ "version": "20.14.8",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/node/-/node-20.14.8.tgz",
+ "integrity": "sha1-RcJqKl3ibDU0qVBFMN2zsnzgMaw=",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
},
"node_modules/@types/normalize-package-data": {
"version": "2.4.1",
@@ -3106,32 +3025,32 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
- "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.5.0.tgz",
+ "integrity": "sha1-fBhjaTqYNxcDaG4cD6xk/8V2zbE=",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/regexpp": "^4.4.0",
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/type-utils": "5.62.0",
- "@typescript-eslint/utils": "5.62.0",
- "debug": "^4.3.4",
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "8.5.0",
+ "@typescript-eslint/type-utils": "8.5.0",
+ "@typescript-eslint/utils": "8.5.0",
+ "@typescript-eslint/visitor-keys": "8.5.0",
"graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "natural-compare-lite": "^1.4.0",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^5.0.0",
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
+ "eslint": "^8.57.0 || ^9.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -3139,49 +3058,28 @@
}
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@typescript-eslint/parser": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.62.0.tgz",
- "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-8.5.0.tgz",
+ "integrity": "sha1-1ZDh758x8m1COZmtP2h3IyR+a8w=",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
+ "@typescript-eslint/scope-manager": "8.5.0",
+ "@typescript-eslint/types": "8.5.0",
+ "@typescript-eslint/typescript-estree": "8.5.0",
+ "@typescript-eslint/visitor-keys": "8.5.0",
"debug": "^4.3.4"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^8.57.0 || ^9.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -3189,40 +3087,18 @@
}
}
},
- "node_modules/@typescript-eslint/parser/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
- "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz",
+ "integrity": "sha1-OFNB3mW5dvArKVuKylS7T/1rXwc=",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0"
+ "@typescript-eslint/types": "8.5.0",
+ "@typescript-eslint/visitor-keys": "8.5.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
@@ -3230,62 +3106,38 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
- "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.5.0.tgz",
+ "integrity": "sha1-YhWyOqOdu9jd4KTvnuD3RUEMKbE=",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.62.0",
- "@typescript-eslint/utils": "5.62.0",
+ "@typescript-eslint/typescript-estree": "8.5.0",
+ "@typescript-eslint/utils": "8.5.0",
"debug": "^4.3.4",
- "tsutils": "^3.21.0"
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
- "peerDependencies": {
- "eslint": "*"
- },
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/type-utils/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@typescript-eslint/types": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.62.0.tgz",
- "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-8.5.0.tgz",
+ "integrity": "sha1-RGXZkzHRJ2+PsgMOT5xz/gGgW/k=",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
@@ -3293,21 +3145,23 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
- "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz",
+ "integrity": "sha1-bldYzy9jqobp3fpOKE4uC4G4dVc=",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0",
+ "@typescript-eslint/types": "8.5.0",
+ "@typescript-eslint/visitor-keys": "8.5.0",
"debug": "^4.3.4",
- "globby": "^11.1.0",
+ "fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
@@ -3319,107 +3173,93 @@
}
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha1-HtxFng8MVISG7Pn8mfIiE2S5oK4=",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha1-10+d1rV9g9jpjPuCEzsDl4vJKeU=",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "ms": "2.1.2"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=6.0"
+ "node": ">=16 || 14 >=14.17"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha1-mA97VVC8F1+03AlAMIVif56zMUM=",
"dev": true,
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@typescript-eslint/utils": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.62.0.tgz",
- "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-8.5.0.tgz",
+ "integrity": "sha1-TU/+2W0GVFRqN/qluEvc4W2VFjQ=",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@types/json-schema": "^7.0.9",
- "@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
- "eslint-scope": "^5.1.1",
- "semver": "^7.3.7"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "8.5.0",
+ "@typescript-eslint/types": "8.5.0",
+ "@typescript-eslint/typescript-estree": "8.5.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^8.57.0 || ^9.0.0"
}
},
- "node_modules/@typescript-eslint/utils/node_modules/@types/semver": {
- "version": "7.5.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/semver/-/semver-7.5.0.tgz",
- "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
- "dev": true
- },
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
- "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz",
+ "integrity": "sha1-EwKN87hm0uPi4sxBk88sHg4ExL8=",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "eslint-visitor-keys": "^3.3.0"
+ "@typescript-eslint/types": "8.5.0",
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha1-dWZBrbWHhRtcyz4JXa8nrlgchAY=",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/@vscode/debugprotocol": {
"version": "1.56.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/debugprotocol/-/debugprotocol-1.56.0.tgz",
@@ -3582,23 +3422,6 @@
"node": ">=12"
}
},
- "node_modules/@vscode/l10n-dev/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/@vscode/l10n-dev/node_modules/entities": {
"version": "4.5.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/entities/-/entities-4.5.0.tgz",
@@ -3684,12 +3507,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@vscode/l10n-dev/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@vscode/l10n-dev/node_modules/uc.micro": {
"version": "2.1.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/uc.micro/-/uc.micro-2.1.0.tgz",
@@ -3751,23 +3568,6 @@
"node": ">= 6.0.0"
}
},
- "node_modules/@vscode/test-electron/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/@vscode/test-electron/node_modules/http-proxy-agent": {
"version": "4.0.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
@@ -3795,12 +3595,6 @@
"node": ">= 6"
}
},
- "node_modules/@vscode/test-electron/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@vscode/vsce": {
"version": "3.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/vsce/-/vsce-3.0.0.tgz",
@@ -4333,10 +4127,11 @@
"license": "Apache-2.0"
},
"node_modules/acorn": {
- "version": "8.8.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.8.2.tgz",
- "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "version": "8.12.1",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha1-cWFr3MviXielRDngBG6JynbfIkg=",
"dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -4357,8 +4152,9 @@
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
@@ -4374,27 +4170,6 @@
"node": ">= 14"
}
},
- "node_modules/agent-base/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/agent-base/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
"node_modules/aggregate-error": {
"version": "3.1.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/aggregate-error/-/aggregate-error-3.1.0.tgz",
@@ -5857,6 +5632,29 @@
"url": "https://github.com/sponsors/fb55"
}
},
+ "node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha1-h5RbQVGgEddtlaGY1xEchlw2ClI=",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=",
+ "license": "MIT"
+ },
"node_modules/decompress-response": {
"version": "6.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/decompress-response/-/decompress-response-6.0.0.tgz",
@@ -5900,8 +5698,9 @@
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
+ "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/deepmerge": {
"version": "4.3.1",
@@ -6036,27 +5835,6 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dir-glob/node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/doctrine/-/doctrine-3.0.0.tgz",
@@ -6419,27 +6197,29 @@
}
},
"node_modules/eslint": {
- "version": "8.43.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.43.0.tgz",
- "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==",
+ "version": "8.57.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha1-x4am/Q4LaJQar2JFlvuYcIkZVmg=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.3",
- "@eslint/js": "8.43.0",
- "@humanwhocodes/config-array": "^0.11.10",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.0",
- "eslint-visitor-keys": "^3.4.1",
- "espree": "^9.5.2",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -6449,7 +6229,6 @@
"globals": "^13.19.0",
"graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
@@ -6459,9 +6238,8 @@
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"bin": {
@@ -6486,50 +6264,6 @@
"eslint": ">=7.0.0"
}
},
- "node_modules/eslint-config-standard": {
- "version": "17.0.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz",
- "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "peerDependencies": {
- "eslint": "^8.0.1",
- "eslint-plugin-import": "^2.25.2",
- "eslint-plugin-n": "^15.0.0",
- "eslint-plugin-promise": "^6.0.0"
- }
- },
- "node_modules/eslint-config-standard-with-typescript": {
- "version": "35.0.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-35.0.0.tgz",
- "integrity": "sha512-Xa7DY9GgduZyp0qmXxBF0/dB+Vm4/DgWu1lGpNLJV2d46aCaUxTKDEnkzjUWX/1O9S0a+Dhnw7A4oI0JpYzwtw==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/parser": "^5.50.0",
- "eslint-config-standard": "17.0.0"
- },
- "peerDependencies": {
- "@typescript-eslint/eslint-plugin": "^5.50.0",
- "eslint": "^8.0.1",
- "eslint-plugin-import": "^2.25.2",
- "eslint-plugin-n": "^15.0.0",
- "eslint-plugin-promise": "^6.0.0",
- "typescript": "*"
- }
- },
"node_modules/eslint-import-resolver-node": {
"version": "0.3.7",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
@@ -6999,10 +6733,11 @@
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
+ "version": "3.4.3",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -7079,23 +6814,6 @@
"node": ">= 8"
}
},
- "node_modules/eslint/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/eslint/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -7109,10 +6827,11 @@
}
},
"node_modules/eslint/node_modules/eslint-scope": {
- "version": "7.2.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.2.0.tgz",
- "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
+ "version": "7.2.2",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha1-3rT5JWM5DzIAaJSvYqItuhxGQj8=",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -7178,12 +6897,6 @@
"node": "*"
}
},
- "node_modules/eslint/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/eslint/node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-3.1.1.tgz",
@@ -7242,12 +6955,13 @@
}
},
"node_modules/espree": {
- "version": "9.5.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.5.2.tgz",
- "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
+ "version": "9.6.1",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.8.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.4.1"
},
@@ -7495,10 +7209,11 @@
"license": "MIT"
},
"node_modules/fast-glob": {
- "version": "3.3.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "version": "3.3.2",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha1-qQRQHlfP3S/83tRemaVP71XkYSk=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -7519,8 +7234,9 @@
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fastest-levenshtein": {
"version": "1.0.12",
@@ -8202,10 +7918,11 @@
}
},
"node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "13.24.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -8591,27 +8308,6 @@
"node": ">= 14"
}
},
- "node_modules/http-proxy-agent/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/http-proxy-agent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
"node_modules/https-proxy-agent": {
"version": "7.0.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
@@ -8624,27 +8320,6 @@
"node": ">= 14"
}
},
- "node_modules/https-proxy-agent/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/https-proxy-agent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
"node_modules/human-signals": {
"version": "2.1.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/human-signals/-/human-signals-2.1.0.tgz",
@@ -8686,10 +8361,11 @@
]
},
"node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "version": "5.3.2",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha1-PNQOcp82Q/2HywTlC/DrcivFlvU=",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -8708,8 +8384,9 @@
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -8724,8 +8401,9 @@
"node_modules/import-fresh/node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -9362,33 +9040,10 @@
"istanbul-lib-coverage": "^3.0.0",
"source-map": "^0.6.1"
},
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/istanbul-lib-source-maps/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/istanbul-lib-source-maps/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz",
@@ -11459,8 +11114,9 @@
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -11732,8 +11388,9 @@
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
@@ -11981,12 +11638,6 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
- "node_modules/natural-compare-lite": {
- "version": "1.4.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
- "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
- "dev": true
- },
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/neo-async/-/neo-async-2.6.2.tgz",
@@ -12425,17 +12076,18 @@
}
},
"node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.4",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha1-fqHBpdkddk+yghOciP4R4YKjpzQ=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "word-wrap": "^1.2.5"
},
"engines": {
"node": ">= 0.8.0"
@@ -12513,8 +12165,9 @@
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -12850,8 +12503,9 @@
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8.0"
}
@@ -14320,6 +13974,19 @@
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
"dev": true
},
+ "node_modules/ts-api-utils": {
+ "version": "1.3.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+ "integrity": "sha1-S0kOJxKfHo5oa0XMSrY3FNxg7qE=",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
"node_modules/ts-jest": {
"version": "29.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-jest/-/ts-jest-29.1.1.tgz",
@@ -14526,21 +14193,6 @@
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-1.13.0.tgz",
"integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
},
- "node_modules/tsutils": {
- "version": "3.21.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tsutils/-/tsutils-3.21.0.tgz",
- "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.8.1"
- },
- "engines": {
- "node": ">= 6"
- },
- "peerDependencies": {
- "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
- }
- },
"node_modules/tunnel": {
"version": "0.0.6",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tunnel/-/tunnel-0.0.6.tgz",
@@ -14567,8 +14219,9 @@
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -14588,8 +14241,9 @@
"node_modules/type-fest": {
"version": "0.20.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -14637,10 +14291,11 @@
}
},
"node_modules/typescript": {
- "version": "5.1.6",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.1.6.tgz",
- "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
+ "version": "5.6.2",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.6.2.tgz",
+ "integrity": "sha1-0d5ntr73fEGCP4It+PCzvP9gpaA=",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -14734,6 +14389,12 @@
"fastest-levenshtein": "^1.0.7"
}
},
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha1-vNU5iT0AtW6WT9JlekhmsiGmVhc=",
+ "license": "MIT"
+ },
"node_modules/universal-github-app-jwt": {
"version": "1.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz",
@@ -15479,10 +15140,11 @@
"dev": true
},
"node_modules/word-wrap": {
- "version": "1.2.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/word-wrap/-/word-wrap-1.2.4.tgz",
- "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
+ "version": "1.2.5",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha1-0sRcbdT7zmIaZvE2y+Mor9BBCzQ=",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -16117,21 +15779,6 @@
"semver": "^6.3.1"
},
"dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"semver": {
"version": "6.3.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-6.3.1.tgz",
@@ -16468,26 +16115,11 @@
"globals": "^11.1.0"
},
"dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"globals": {
"version": "11.12.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
}
}
},
@@ -16524,20 +16156,20 @@
}
},
"@eslint-community/regexpp": {
- "version": "4.5.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
- "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
+ "version": "4.11.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
+ "integrity": "sha1-sP/QMStKP9LW93I35ySKWtOmgK4=",
"dev": true
},
"@eslint/eslintrc": {
- "version": "2.0.3",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
- "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
+ "version": "2.1.4",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.5.2",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -16549,22 +16181,13 @@
"argparse": {
"version": "2.0.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=",
"dev": true
},
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"js-yaml": {
"version": "4.1.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=",
"dev": true,
"requires": {
"argparse": "^2.0.1"
@@ -16573,24 +16196,18 @@
"minimatch": {
"version": "3.1.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
}
}
},
"@eslint/js": {
- "version": "8.43.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.43.0.tgz",
- "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==",
+ "version": "8.57.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha1-pUF66EJ4c/HdCLcLNXS0U+Z7X38=",
"dev": true
},
"@gulpjs/messages": {
@@ -16609,31 +16226,14 @@
}
},
"@humanwhocodes/config-array": {
- "version": "0.11.10",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
- "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
+ "version": "0.11.14",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha1-145IGgOfdWbsyWYLTqf+ax/sRCs=",
"dev": true,
"requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
}
},
"@humanwhocodes/module-importer": {
@@ -16643,9 +16243,9 @@
"dev": true
},
"@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.3",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha1-Siho111taWPkI7z5C3/RvjQ0CdM=",
"dev": true
},
"@isaacs/cliui": {
@@ -18032,9 +17632,12 @@
"dev": true
},
"@types/node": {
- "version": "16.11.38",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/node/-/node-16.11.38.tgz",
- "integrity": "sha512-hjO/0K140An3GWDw2HJfq7gko3wWeznbjXgg+rzPdVzhe198hp4x2i1dgveAOEiFKd8sOilAxzoSJiVv5P/CUg=="
+ "version": "20.14.8",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/node/-/node-20.14.8.tgz",
+ "integrity": "sha1-RcJqKl3ibDU0qVBFMN2zsnzgMaw=",
+ "requires": {
+ "undici-types": "~5.26.4"
+ }
},
"@types/normalize-package-data": {
"version": "2.4.1",
@@ -18143,200 +17746,133 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
- "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.5.0.tgz",
+ "integrity": "sha1-fBhjaTqYNxcDaG4cD6xk/8V2zbE=",
"dev": true,
"requires": {
- "@eslint-community/regexpp": "^4.4.0",
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/type-utils": "5.62.0",
- "@typescript-eslint/utils": "5.62.0",
- "debug": "^4.3.4",
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "8.5.0",
+ "@typescript-eslint/type-utils": "8.5.0",
+ "@typescript-eslint/utils": "8.5.0",
+ "@typescript-eslint/visitor-keys": "8.5.0",
"graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "natural-compare-lite": "^1.4.0",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^1.3.0"
}
},
"@typescript-eslint/parser": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.62.0.tgz",
- "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-8.5.0.tgz",
+ "integrity": "sha1-1ZDh758x8m1COZmtP2h3IyR+a8w=",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
+ "@typescript-eslint/scope-manager": "8.5.0",
+ "@typescript-eslint/types": "8.5.0",
+ "@typescript-eslint/typescript-estree": "8.5.0",
+ "@typescript-eslint/visitor-keys": "8.5.0",
"debug": "^4.3.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
- "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz",
+ "integrity": "sha1-OFNB3mW5dvArKVuKylS7T/1rXwc=",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0"
+ "@typescript-eslint/types": "8.5.0",
+ "@typescript-eslint/visitor-keys": "8.5.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
- "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.5.0.tgz",
+ "integrity": "sha1-YhWyOqOdu9jd4KTvnuD3RUEMKbE=",
"dev": true,
"requires": {
- "@typescript-eslint/typescript-estree": "5.62.0",
- "@typescript-eslint/utils": "5.62.0",
+ "@typescript-eslint/typescript-estree": "8.5.0",
+ "@typescript-eslint/utils": "8.5.0",
"debug": "^4.3.4",
- "tsutils": "^3.21.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "ts-api-utils": "^1.3.0"
}
},
"@typescript-eslint/types": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.62.0.tgz",
- "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-8.5.0.tgz",
+ "integrity": "sha1-RGXZkzHRJ2+PsgMOT5xz/gGgW/k=",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
- "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz",
+ "integrity": "sha1-bldYzy9jqobp3fpOKE4uC4G4dVc=",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0",
+ "@typescript-eslint/types": "8.5.0",
+ "@typescript-eslint/visitor-keys": "8.5.0",
"debug": "^4.3.4",
- "globby": "^11.1.0",
+ "fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
},
"dependencies": {
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha1-HtxFng8MVISG7Pn8mfIiE2S5oK4=",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "balanced-match": "^1.0.0"
}
},
- "globby": {
- "version": "11.1.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha1-10+d1rV9g9jpjPuCEzsDl4vJKeU=",
"dev": true,
"requires": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "brace-expansion": "^2.0.1"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "semver": {
+ "version": "7.6.3",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha1-mA97VVC8F1+03AlAMIVif56zMUM=",
"dev": true
}
}
},
"@typescript-eslint/utils": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.62.0.tgz",
- "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-8.5.0.tgz",
+ "integrity": "sha1-TU/+2W0GVFRqN/qluEvc4W2VFjQ=",
"dev": true,
"requires": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@types/json-schema": "^7.0.9",
- "@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
- "eslint-scope": "^5.1.1",
- "semver": "^7.3.7"
- },
- "dependencies": {
- "@types/semver": {
- "version": "7.5.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/semver/-/semver-7.5.0.tgz",
- "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
- "dev": true
- }
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "8.5.0",
+ "@typescript-eslint/types": "8.5.0",
+ "@typescript-eslint/typescript-estree": "8.5.0"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.62.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
- "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+ "version": "8.5.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz",
+ "integrity": "sha1-EwKN87hm0uPi4sxBk88sHg4ExL8=",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.62.0",
- "eslint-visitor-keys": "^3.3.0"
+ "@typescript-eslint/types": "8.5.0",
+ "eslint-visitor-keys": "^3.4.3"
}
},
+ "@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha1-dWZBrbWHhRtcyz4JXa8nrlgchAY=",
+ "dev": true
+ },
"@vscode/debugprotocol": {
"version": "1.56.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/debugprotocol/-/debugprotocol-1.56.0.tgz",
@@ -18463,15 +17999,6 @@
"wrap-ansi": "^7.0.0"
}
},
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"entities": {
"version": "4.5.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/entities/-/entities-4.5.0.tgz",
@@ -18529,12 +18056,6 @@
"brace-expansion": "^2.0.1"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"uc.micro": {
"version": "2.1.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/uc.micro/-/uc.micro-2.1.0.tgz",
@@ -18585,15 +18106,6 @@
"debug": "4"
}
},
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"http-proxy-agent": {
"version": "4.0.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
@@ -18614,12 +18126,6 @@
"agent-base": "6",
"debug": "4"
}
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
}
}
},
@@ -19009,9 +18515,9 @@
"dev": true
},
"acorn": {
- "version": "8.8.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.8.2.tgz",
- "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "version": "8.12.1",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha1-cWFr3MviXielRDngBG6JynbfIkg=",
"dev": true
},
"acorn-import-attributes": {
@@ -19024,7 +18530,7 @@
"acorn-jsx": {
"version": "5.3.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=",
"dev": true,
"requires": {}
},
@@ -19034,21 +18540,6 @@
"integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"requires": {
"debug": "^4.3.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
}
},
"aggregate-error": {
@@ -20177,6 +19668,21 @@
"integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
"dev": true
},
+ "debug": {
+ "version": "4.3.7",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha1-h5RbQVGgEddtlaGY1xEchlw2ClI=",
+ "requires": {
+ "ms": "^2.1.3"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI="
+ }
+ }
+ },
"decompress-response": {
"version": "6.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/decompress-response/-/decompress-response-6.0.0.tgz",
@@ -20204,7 +19710,7 @@
"deep-is": {
"version": "0.1.4",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=",
"dev": true
},
"deepmerge": {
@@ -20297,23 +19803,6 @@
"integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true
},
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "requires": {
- "path-type": "^4.0.0"
- },
- "dependencies": {
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- }
- }
- },
"doctrine": {
"version": "3.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/doctrine/-/doctrine-3.0.0.tgz",
@@ -20597,27 +20086,28 @@
"dev": true
},
"eslint": {
- "version": "8.43.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.43.0.tgz",
- "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==",
+ "version": "8.57.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha1-x4am/Q4LaJQar2JFlvuYcIkZVmg=",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.3",
- "@eslint/js": "8.43.0",
- "@humanwhocodes/config-array": "^0.11.10",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.0",
- "eslint-visitor-keys": "^3.4.1",
- "espree": "^9.5.2",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -20627,7 +20117,6 @@
"globals": "^13.19.0",
"graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
@@ -20637,9 +20126,8 @@
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"dependencies": {
@@ -20694,15 +20182,6 @@
"which": "^2.0.1"
}
},
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -20710,9 +20189,9 @@
"dev": true
},
"eslint-scope": {
- "version": "7.2.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.2.0.tgz",
- "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
+ "version": "7.2.2",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha1-3rT5JWM5DzIAaJSvYqItuhxGQj8=",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
@@ -20758,12 +20237,6 @@
"brace-expansion": "^1.1.7"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"path-key": {
"version": "3.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-3.1.1.tgz",
@@ -20812,23 +20285,6 @@
"dev": true,
"requires": {}
},
- "eslint-config-standard": {
- "version": "17.0.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz",
- "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==",
- "dev": true,
- "requires": {}
- },
- "eslint-config-standard-with-typescript": {
- "version": "35.0.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-35.0.0.tgz",
- "integrity": "sha512-Xa7DY9GgduZyp0qmXxBF0/dB+Vm4/DgWu1lGpNLJV2d46aCaUxTKDEnkzjUWX/1O9S0a+Dhnw7A4oI0JpYzwtw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/parser": "^5.50.0",
- "eslint-config-standard": "17.0.0"
- }
- },
"eslint-import-resolver-node": {
"version": "0.3.7",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
@@ -21181,18 +20637,18 @@
}
},
"eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
+ "version": "3.4.3",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=",
"dev": true
},
"espree": {
- "version": "9.5.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.5.2.tgz",
- "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
+ "version": "9.6.1",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=",
"dev": true,
"requires": {
- "acorn": "^8.8.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.4.1"
}
@@ -21369,9 +20825,9 @@
"dev": true
},
"fast-glob": {
- "version": "3.3.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "version": "3.3.2",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha1-qQRQHlfP3S/83tRemaVP71XkYSk=",
"dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
@@ -21390,7 +20846,7 @@
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"dev": true
},
"fastest-levenshtein": {
@@ -21895,9 +21351,9 @@
}
},
"globals": {
- "version": "13.20.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "13.24.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -22164,21 +21620,6 @@
"requires": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
}
},
"https-proxy-agent": {
@@ -22188,21 +21629,6 @@
"requires": {
"agent-base": "^7.0.2",
"debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
}
},
"human-signals": {
@@ -22226,9 +21652,9 @@
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"ignore": {
- "version": "5.2.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "version": "5.3.2",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha1-PNQOcp82Q/2HywTlC/DrcivFlvU=",
"dev": true
},
"immediate": {
@@ -22245,7 +21671,7 @@
"import-fresh": {
"version": "3.3.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=",
"dev": true,
"requires": {
"parent-module": "^1.0.0",
@@ -22255,7 +21681,7 @@
"resolve-from": {
"version": "4.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
"dev": true
}
}
@@ -22703,21 +22129,6 @@
"source-map": "^0.6.1"
},
"dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz",
@@ -24260,7 +23671,7 @@
"levn": {
"version": "0.4.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=",
"dev": true,
"requires": {
"prelude-ls": "^1.2.1",
@@ -24494,7 +23905,7 @@
"merge2": {
"version": "1.4.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=",
"dev": true
},
"micromatch": {
@@ -24684,12 +24095,6 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
- "natural-compare-lite": {
- "version": "1.4.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
- "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
- "dev": true
- },
"neo-async": {
"version": "2.6.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/neo-async/-/neo-async-2.6.2.tgz",
@@ -25023,9 +24428,9 @@
}
},
"optionator": {
- "version": "0.9.1",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.4",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha1-fqHBpdkddk+yghOciP4R4YKjpzQ=",
"dev": true,
"requires": {
"deep-is": "^0.1.3",
@@ -25033,7 +24438,7 @@
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "word-wrap": "^1.2.5"
}
},
"os-tmpdir": {
@@ -25086,7 +24491,7 @@
"parent-module": {
"version": "1.0.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=",
"dev": true,
"requires": {
"callsites": "^3.0.0"
@@ -25346,7 +24751,7 @@
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=",
"dev": true
},
"prettier": {
@@ -26408,6 +25813,13 @@
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
"dev": true
},
+ "ts-api-utils": {
+ "version": "1.3.0",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+ "integrity": "sha1-S0kOJxKfHo5oa0XMSrY3FNxg7qE=",
+ "dev": true,
+ "requires": {}
+ },
"ts-jest": {
"version": "29.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-jest/-/ts-jest-29.1.1.tgz",
@@ -26544,15 +25956,6 @@
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-1.13.0.tgz",
"integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
},
- "tsutils": {
- "version": "3.21.0",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tsutils/-/tsutils-3.21.0.tgz",
- "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
- "dev": true,
- "requires": {
- "tslib": "^1.8.1"
- }
- },
"tunnel": {
"version": "0.0.6",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tunnel/-/tunnel-0.0.6.tgz",
@@ -26572,7 +25975,7 @@
"type-check": {
"version": "0.4.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=",
"dev": true,
"requires": {
"prelude-ls": "^1.2.1"
@@ -26587,7 +25990,7 @@
"type-fest": {
"version": "0.20.2",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=",
"dev": true
},
"type-is": {
@@ -26623,9 +26026,9 @@
}
},
"typescript": {
- "version": "5.1.6",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.1.6.tgz",
- "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
+ "version": "5.6.2",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.6.2.tgz",
+ "integrity": "sha1-0d5ntr73fEGCP4It+PCzvP9gpaA=",
"dev": true
},
"uc.micro": {
@@ -26696,6 +26099,11 @@
"integrity": "sha1-1DQkbjmERHQN1/5MlUPkAq2Z5Mo=",
"dev": true
},
+ "undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha1-vNU5iT0AtW6WT9JlekhmsiGmVhc="
+ },
"universal-github-app-jwt": {
"version": "1.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz",
@@ -27261,9 +26669,9 @@
"dev": true
},
"word-wrap": {
- "version": "1.2.4",
- "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/word-wrap/-/word-wrap-1.2.4.tgz",
- "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
+ "version": "1.2.5",
+ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha1-0sRcbdT7zmIaZvE2y+Mor9BBCzQ=",
"dev": true
},
"wrap-ansi": {
diff --git a/package.json b/package.json
index eab79cf5b..a333bc6db 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,8 @@
"compileDev": "tsc -p ./ && npx eslint ./ && webpack --mode development && npm run l10nDevGenerateLocalizationBundle",
"watch": "tsc -watch -p ./",
"test": "tsc -p ./ && gulp test",
- "test:integration": "tsc -p ./ && gulp test:integration",
+ "test:withoutDevKit": "tsc -p ./ && gulp test:withoutDevKit",
+ "test:integration:devkit": "tsc -p ./ && gulp test:integration:devkit",
"test:razor": "tsc -p ./ && npm run compile:razorTextMate && gulp test:razor",
"test:razorintegration": "tsc -p ./ && gulp test:razorintegration",
"test:artifacts": "tsc -p ./ && gulp test:artifacts",
@@ -126,15 +127,15 @@
"@types/fs-extra": "5.0.4",
"@types/gulp": "4.0.5",
"@types/minimist": "1.2.1",
- "@types/node": "16.11.38",
+ "@types/node": "20.14.8",
"@types/semver": "7.3.13",
"@types/tmp": "0.0.33",
"@types/unzipper": "^0.9.1",
"@types/uuid": "^9.0.1",
"@types/vscode": "1.73.0",
"@types/yauzl": "2.10.0",
- "@typescript-eslint/eslint-plugin": "^5.61.0",
- "@typescript-eslint/parser": "^5.61.0",
+ "@typescript-eslint/eslint-plugin": "^8.5.0",
+ "@typescript-eslint/parser": "^8.5.0",
"@vscode/l10n-dev": "^0.0.35",
"@vscode/test-electron": "2.3.8",
"@vscode/vsce": "3.0.0",
@@ -142,7 +143,6 @@
"del": "3.0.0",
"eslint": "^8.43.0",
"eslint-config-prettier": "^8.8.0",
- "eslint-config-standard-with-typescript": "^35.0.0",
"eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0",
@@ -166,7 +166,7 @@
"ts-jest": "^29.1.1",
"ts-loader": "9.0.0",
"ts-node": "9.1.1",
- "typescript": "^5.1.6",
+ "typescript": "5.6.2",
"unzipper": "0.10.11",
"vscode-oniguruma": "^1.6.1",
"vscode-textmate": "^6.0.0",
diff --git a/src/common.ts b/src/common.ts
index 2fb5a6a59..5cf8efa7c 100644
--- a/src/common.ts
+++ b/src/common.ts
@@ -220,7 +220,7 @@ export function findPowerShell(): string | undefined {
if (fs.statSync(candidate).isFile()) {
return name;
}
- } catch (e) {
+ } catch (_) {
/* empty */
}
}
diff --git a/src/omnisharp/engines/stdioEngine.ts b/src/omnisharp/engines/stdioEngine.ts
index 1fda3bcc3..5fa9640d8 100644
--- a/src/omnisharp/engines/stdioEngine.ts
+++ b/src/omnisharp/engines/stdioEngine.ts
@@ -399,7 +399,7 @@ export class StdioEngine implements IEngine {
let packet: protocol.WireProtocol.Packet;
try {
packet = JSON.parse(line);
- } catch (err) {
+ } catch (_) {
// This isn't JSON
return;
}
diff --git a/src/omnisharp/features/codeLensProvider.ts b/src/omnisharp/features/codeLensProvider.ts
index ea00eac36..935f81e8e 100644
--- a/src/omnisharp/features/codeLensProvider.ts
+++ b/src/omnisharp/features/codeLensProvider.ts
@@ -96,7 +96,7 @@ export default class OmniSharpCodeLensProvider extends AbstractProvider implemen
if (response && response.Elements) {
return createCodeLenses(response.Elements, document.fileName);
}
- } catch (error) {
+ } catch (_) {
/* empty */
}
@@ -162,7 +162,7 @@ export default class OmniSharpCodeLensProvider extends AbstractProvider implemen
};
return codeLens;
- } catch (error) {
+ } catch (_) {
return undefined;
}
}
@@ -188,7 +188,7 @@ export default class OmniSharpCodeLensProvider extends AbstractProvider implemen
let projectInfo: protocol.ProjectInformationResponse;
try {
projectInfo = await serverUtils.requestProjectInformation(this._server, { FileName: codeLens.fileName });
- } catch (error) {
+ } catch (_) {
return undefined;
}
diff --git a/src/omnisharp/features/completionProvider.ts b/src/omnisharp/features/completionProvider.ts
index 251f340e3..8eb0e0b13 100644
--- a/src/omnisharp/features/completionProvider.ts
+++ b/src/omnisharp/features/completionProvider.ts
@@ -95,7 +95,7 @@ export default class OmniSharpCompletionProvider extends AbstractProvider implem
this.#lastCompletions = lastCompletions;
return { items: mappedItems };
- } catch (error) {
+ } catch (_) {
return;
}
}
@@ -115,7 +115,7 @@ export default class OmniSharpCompletionProvider extends AbstractProvider implem
try {
const response = await serverUtils.getCompletionResolve(this._server, request, token);
return this._convertToVscodeCompletionItem(response.Item, item.command?.arguments?.[1] as TextDocument);
- } catch (error) {
+ } catch (_) {
return item;
}
}
@@ -155,7 +155,7 @@ export default class OmniSharpCompletionProvider extends AbstractProvider implem
const finalPosition = new Position(response.Line, response.Column);
editor.selections = [new Selection(finalPosition, finalPosition)];
- } catch (error) {
+ } catch (_) {
return;
}
}
diff --git a/src/omnisharp/features/definitionProvider.ts b/src/omnisharp/features/definitionProvider.ts
index 9a8534b3c..a57ceb592 100644
--- a/src/omnisharp/features/definitionProvider.ts
+++ b/src/omnisharp/features/definitionProvider.ts
@@ -51,7 +51,7 @@ export default class OmniSharpDefinitionProvider
try {
const gotoDefinitionResponse = await serverUtils.goToDefinition(this._server, req, token);
return await this.GetLocationsFromResponse(gotoDefinitionResponse, token);
- } catch (error) {
+ } catch (_) {
return [];
}
}
@@ -67,7 +67,7 @@ export default class OmniSharpDefinitionProvider
try {
const goToTypeDefinitionResponse = await serverUtils.goToTypeDefinition(this._server, req, token);
return await this.GetLocationsFromResponse(goToTypeDefinitionResponse, token);
- } catch (error) {
+ } catch (_) {
return [];
}
}
diff --git a/src/omnisharp/features/diagnosticsProvider.ts b/src/omnisharp/features/diagnosticsProvider.ts
index 8decafb43..9bf31235a 100644
--- a/src/omnisharp/features/diagnosticsProvider.ts
+++ b/src/omnisharp/features/diagnosticsProvider.ts
@@ -279,7 +279,7 @@ class OmniSharpDiagnosticsProvider extends AbstractSupport {
document.uri,
diagnosticsInFile.map((x) => x.diagnostic)
);
- } catch (error) {
+ } catch (_) {
return;
}
}
diff --git a/src/omnisharp/features/documentSymbolProvider.ts b/src/omnisharp/features/documentSymbolProvider.ts
index 532f3d19d..88bacf3b9 100644
--- a/src/omnisharp/features/documentSymbolProvider.ts
+++ b/src/omnisharp/features/documentSymbolProvider.ts
@@ -26,7 +26,7 @@ export default class OmniSharpDocumentSymbolProvider extends AbstractSupport imp
}
return [];
- } catch (error) {
+ } catch (_) {
return [];
}
}
diff --git a/src/omnisharp/features/dotnetTest.ts b/src/omnisharp/features/dotnetTest.ts
index ebd3805d0..a7bf07204 100644
--- a/src/omnisharp/features/dotnetTest.ts
+++ b/src/omnisharp/features/dotnetTest.ts
@@ -41,7 +41,7 @@ const TelemetryReportingDelay = 2 * 60 * 1000; // two minutes
export default class TestManager extends AbstractProvider {
private _runCounts?: { [testFrameworkName: string]: number };
private _debugCounts?: { [testFrameworkName: string]: number };
- private _telemetryIntervalId?: NodeJS.Timer = undefined;
+ private _telemetryIntervalId?: NodeJS.Timeout = undefined;
private _eventStream: EventStream;
constructor(
@@ -190,7 +190,7 @@ export default class TestManager extends AbstractProvider {
let projectInfo: protocol.ProjectInformationResponse;
try {
projectInfo = await serverUtils.requestProjectInformation(this._server, { FileName: fileName });
- } catch (error) {
+ } catch (_) {
return undefined;
}
@@ -465,7 +465,7 @@ export default class TestManager extends AbstractProvider {
let projectInfo: protocol.ProjectInformationResponse;
try {
projectInfo = await serverUtils.requestProjectInformation(this._server, { FileName: fileName });
- } catch (error) {
+ } catch (_) {
throw new Error('Could not determine project type.');
}
@@ -708,7 +708,7 @@ class DebugEventListener {
let event: DebuggerEventsProtocol.DebuggerEvent;
try {
event = DebuggerEventsProtocol.decodePacket(buffer);
- } catch (e) {
+ } catch (_) {
this._eventStream.post(new DotNetTestDebugWarning('Invalid event received from debugger'));
return;
}
@@ -803,7 +803,7 @@ class DebugEventListener {
try {
serverUtils.debugTestStop(this._server, request);
this.close();
- } catch (error) {
+ } catch (_) {
return;
}
}
diff --git a/src/omnisharp/features/hoverProvider.ts b/src/omnisharp/features/hoverProvider.ts
index b812413dc..6c7f76ebe 100644
--- a/src/omnisharp/features/hoverProvider.ts
+++ b/src/omnisharp/features/hoverProvider.ts
@@ -26,7 +26,7 @@ export default class OmniSharpHoverProvider extends AbstractSupport implements H
markdownString.appendMarkdown(response.Markdown);
return new Hover(markdownString);
- } catch (error) {
+ } catch (_) {
return undefined;
}
}
diff --git a/src/omnisharp/features/renameProvider.ts b/src/omnisharp/features/renameProvider.ts
index e160b06bb..d0a0a347b 100644
--- a/src/omnisharp/features/renameProvider.ts
+++ b/src/omnisharp/features/renameProvider.ts
@@ -44,7 +44,7 @@ export default class OmniSharpRenameProvider extends AbstractSupport implements
// Allow language middlewares to re-map its edits if necessary.
const result = await this._languageMiddlewareFeature.remap('remapWorkspaceEdit', edit, token);
return result;
- } catch (error) {
+ } catch (_) {
return undefined;
}
}
diff --git a/src/omnisharp/features/signatureHelpProvider.ts b/src/omnisharp/features/signatureHelpProvider.ts
index 1cea58fc4..44791bf5a 100644
--- a/src/omnisharp/features/signatureHelpProvider.ts
+++ b/src/omnisharp/features/signatureHelpProvider.ts
@@ -55,7 +55,7 @@ export default class OmniSharpSignatureHelpProvider extends AbstractSupport impl
}
return ret;
- } catch (error) {
+ } catch (_) {
return undefined;
}
}
diff --git a/src/omnisharp/features/structureProvider.ts b/src/omnisharp/features/structureProvider.ts
index 6a0c7a52f..437e50eeb 100644
--- a/src/omnisharp/features/structureProvider.ts
+++ b/src/omnisharp/features/structureProvider.ts
@@ -35,7 +35,7 @@ export class OmniSharpStructureProvider extends AbstractSupport implements Foldi
}
return ranges;
- } catch (error) {
+ } catch (_) {
return [];
}
}
diff --git a/src/omnisharp/languageMiddlewareFeature.ts b/src/omnisharp/languageMiddlewareFeature.ts
index bca7e54e5..cfaba25ae 100644
--- a/src/omnisharp/languageMiddlewareFeature.ts
+++ b/src/omnisharp/languageMiddlewareFeature.ts
@@ -79,7 +79,7 @@ export class LanguageMiddlewareFeature implements IDisposable {
}
return remapped;
- } catch (error) {
+ } catch (_) {
// Something happened while remapping. Return the original.
return original;
}
diff --git a/src/omnisharp/requirementCheck.ts b/src/omnisharp/requirementCheck.ts
index ead017f35..5c5e4d2f7 100644
--- a/src/omnisharp/requirementCheck.ts
+++ b/src/omnisharp/requirementCheck.ts
@@ -74,7 +74,7 @@ async function checkRequirements(): Promise {
let monoError = false;
try {
await monoResolver.getHostExecutableInfo();
- } catch (e) {
+ } catch (_) {
monoError = true;
}
diff --git a/src/packageManager/downloadAndInstallPackages.ts b/src/packageManager/downloadAndInstallPackages.ts
index d75aae2fa..a148a666e 100644
--- a/src/packageManager/downloadAndInstallPackages.ts
+++ b/src/packageManager/downloadAndInstallPackages.ts
@@ -67,7 +67,7 @@ export async function downloadAndInstallPackages(
if (await installFileExists(pkg.installPath, InstallFileType.Begin)) {
await deleteInstallFile(pkg.installPath, InstallFileType.Begin);
}
- } catch (error) {
+ } catch (_) {
/* empty */
}
}
diff --git a/src/packageManager/fileDownloader.ts b/src/packageManager/fileDownloader.ts
index cea218574..b1535a213 100644
--- a/src/packageManager/fileDownloader.ts
+++ b/src/packageManager/fileDownloader.ts
@@ -43,7 +43,7 @@ export async function DownloadFile(
const buffer = await downloadFile(description, fallbackUrl, eventStream, networkSettingsProvider);
eventStream.post(new DownloadSuccess(' Done!'));
return buffer;
- } catch (fallbackUrlError) {
+ } catch (_) {
throw primaryUrlError;
}
} else {
diff --git a/src/packageManager/zipInstaller.ts b/src/packageManager/zipInstaller.ts
index 832d5b88f..5e99ff418 100644
--- a/src/packageManager/zipInstaller.ts
+++ b/src/packageManager/zipInstaller.ts
@@ -43,10 +43,7 @@ export async function InstallZip(
} catch (err) {
const error = err as NodeJS.ErrnoException; // Hack for TypeScript to type err correctly
return reject(
- new NestedError(
- 'Error creating directory for zip directory entry:' + error.code ?? '',
- error
- )
+ new NestedError('Error creating directory for zip directory entry:' + error.code, error)
);
}
} else {
diff --git a/src/razor/src/diagnostics/reportIssueCreator.ts b/src/razor/src/diagnostics/reportIssueCreator.ts
index 75735c46c..f2ca9a499 100644
--- a/src/razor/src/diagnostics/reportIssueCreator.ts
+++ b/src/razor/src/diagnostics/reportIssueCreator.ts
@@ -212,7 +212,7 @@ ${csharpTextDocument.getText()}`;
csharpContent = `${csharpContent}
${errorSuffix}`;
}
- } catch (e) {
+ } catch (_) {
csharpContent = `${csharpContent}
${errorSuffix}`;
}
@@ -239,7 +239,7 @@ ${htmlTextDocument.getText()}`;
htmlContent = `${htmlContent}
${errorSuffix}`;
}
- } catch (e) {
+ } catch (_) {
htmlContent = `${htmlContent}
${errorSuffix}`;
}
diff --git a/src/razor/src/document/razorDocumentSynchronizer.ts b/src/razor/src/document/razorDocumentSynchronizer.ts
index d98274662..e8e8cbc80 100644
--- a/src/razor/src/document/razorDocumentSynchronizer.ts
+++ b/src/razor/src/document/razorDocumentSynchronizer.ts
@@ -256,7 +256,7 @@ interface SynchronizationContext {
readonly projectedDocument: IProjectedDocument;
readonly logIdentifier: number;
readonly toHostDocumentVersion: number;
- readonly timeoutId: NodeJS.Timer;
+ readonly timeoutId: NodeJS.Timeout;
readonly projectedDocumentSynchronized: () => void;
readonly onProjectedDocumentSynchronized: Promise;
readonly projectedTextDocumentSynchronized: () => void;
diff --git a/src/razor/src/html/htmlTagCompletionProvider.ts b/src/razor/src/html/htmlTagCompletionProvider.ts
index 7c7792f5f..aef25c419 100644
--- a/src/razor/src/html/htmlTagCompletionProvider.ts
+++ b/src/razor/src/html/htmlTagCompletionProvider.ts
@@ -15,7 +15,7 @@ import { RazorLanguageServiceClient } from '../razorLanguageServiceClient';
import { LanguageKind } from '../rpc/languageKind';
export class HtmlTagCompletionProvider {
- private timeout: NodeJS.Timer | undefined = void 0;
+ private timeout: NodeJS.Timeout | undefined = void 0;
private enabled = false;
private htmlLanguageService: HtmlLanguageService | undefined;
diff --git a/tasks/testTasks.ts b/tasks/testTasks.ts
index c84e53a1a..f8d705d48 100644
--- a/tasks/testTasks.ts
+++ b/tasks/testTasks.ts
@@ -7,94 +7,142 @@ import * as fs from 'fs';
import * as gulp from 'gulp';
import * as path from 'path';
import { codeExtensionPath, rootPath, outPath } from './projectPaths';
-import spawnNode from './spawnNode';
import * as jest from 'jest';
import { Config } from '@jest/types';
import { jestOmniSharpUnitTestProjectName } from '../test/omnisharp/omnisharpUnitTests/jest.config';
import { jestUnitTestProjectName } from '../test/lsptoolshost/unitTests/jest.config';
import { razorTestProjectName } from '../test/razor/razorTests/jest.config';
import { jestArtifactTestsProjectName } from '../test/lsptoolshost/artifactTests/jest.config';
+import { prepareVSCodeAndExecuteTests } from '../test/vscodeLauncher';
-gulp.task('test:razor', async () => {
- runJestTest(razorTestProjectName);
-});
-
-const razorIntegrationTestProjects = ['BasicRazorApp2_1'];
-for (const projectName of razorIntegrationTestProjects) {
- gulp.task(`test:razorintegration:${projectName}`, async () =>
- runIntegrationTest(
- projectName,
- path.join('razor', 'razorIntegrationTests'),
- `Razor Test Integration ${projectName}`
- )
- );
-}
-
-gulp.task(
- 'test:razorintegration',
- gulp.series(razorIntegrationTestProjects.map((projectName) => `test:razorintegration:${projectName}`))
-);
+createUnitTestSubTasks();
+createIntegrationTestSubTasks();
+createOmniSharpTestSubTasks();
gulp.task('test:artifacts', async () => {
runJestTest(jestArtifactTestsProjectName);
});
-gulp.task('omnisharptest:unit', async () => {
- await runJestTest(jestOmniSharpUnitTestProjectName);
-});
+// Overall test command that runs everything except O# tests.
+gulp.task('test', gulp.series('test:unit', 'test:integration'));
+
+// Bit of a special task for CI. We want to generally combine test runs to save preparation time.
+// However the Dev Kit integration tests are much slower than everything else (VSCode restarts on each test file).
+// So we can have one run for all of the general C# extension tests, and then another for Dev Kit integration tests.
+gulp.task('test:withoutDevKit', gulp.series('test:unit', 'test:integration:csharp', 'test:razorintegration'));
+
+gulp.task('test:razor', gulp.series('test:unit:razor', 'test:razorintegration'));
+
+// OmniSharp tests are run separately in CI, so we have separate tasks for these.
+// TODO: Enable lsp integration tests once tests for unimplemented features are disabled.
+gulp.task('omnisharptest', gulp.series('omnisharptest:unit', 'omnisharptest:integration:stdio'));
+
+function createUnitTestSubTasks() {
+ gulp.task('test:unit:csharp', async () => {
+ await runJestTest(jestUnitTestProjectName);
+ });
+
+ gulp.task('test:unit:razor', async () => {
+ runJestTest(razorTestProjectName);
+ });
+
+ gulp.task('test:unit', gulp.series('test:unit:csharp', 'test:unit:razor'));
+}
+
+async function createIntegrationTestSubTasks() {
+ const integrationTestProjects = ['slnWithCsproj'];
+ for (const projectName of integrationTestProjects) {
+ gulp.task(`test:integration:csharp:${projectName}`, async () =>
+ runIntegrationTest(projectName, path.join('lsptoolshost', 'integrationTests'), `[C#][${projectName}]`)
+ );
-const omnisharpIntegrationTestProjects = ['singleCsproj', 'slnWithCsproj', 'slnFilterWithCsproj', 'BasicRazorApp2_1'];
+ gulp.task(`test:integration:devkit:${projectName}`, async () =>
+ runDevKitIntegrationTests(
+ projectName,
+ path.join('lsptoolshost', 'integrationTests'),
+ `[DevKit][${projectName}]`
+ )
+ );
+ }
-for (const projectName of omnisharpIntegrationTestProjects) {
- gulp.task(`omnisharptest:integration:${projectName}:stdio`, async () =>
- runOmnisharpJestIntegrationTest(projectName, 'stdio', `OmniSharp Test Integration ${projectName} STDIO}`)
+ gulp.task(
+ 'test:integration:csharp',
+ gulp.series(integrationTestProjects.map((projectName) => `test:integration:csharp:${projectName}`))
);
- gulp.task(`omnisharptest:integration:${projectName}:lsp`, async () =>
- runOmnisharpJestIntegrationTest(projectName, 'lsp', `OmniSharp Test Integration ${projectName} LSP}`)
+
+ gulp.task(
+ 'test:integration:devkit',
+ gulp.series(integrationTestProjects.map((projectName) => `test:integration:devkit:${projectName}`))
);
+
+ const razorIntegrationTestProjects = ['BasicRazorApp2_1'];
+ for (const projectName of razorIntegrationTestProjects) {
+ gulp.task(`test:razorintegration:${projectName}`, async () =>
+ runIntegrationTest(
+ projectName,
+ path.join('razor', 'razorIntegrationTests'),
+ `Razor Test Integration ${projectName}`
+ )
+ );
+ }
+
+ gulp.task(
+ 'test:razorintegration',
+ gulp.series(razorIntegrationTestProjects.map((projectName) => `test:razorintegration:${projectName}`))
+ );
+
gulp.task(
- `omnisharptest:integration:${projectName}`,
- gulp.series(`omnisharptest:integration:${projectName}:stdio`, `omnisharptest:integration:${projectName}:lsp`)
+ 'test:integration',
+ gulp.series('test:integration:csharp', 'test:integration:devkit', 'test:razorintegration')
);
}
-gulp.task(
- 'omnisharptest:integration',
- gulp.series(omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}`))
-);
-gulp.task(
- 'omnisharptest:integration:stdio',
- gulp.series(omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}:stdio`))
-);
-gulp.task(
- 'omnisharptest:integration:lsp',
- gulp.series(omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}:lsp`))
-);
-// TODO: Enable lsp integration tests once tests for unimplemented features are disabled.
-gulp.task('omnisharptest', gulp.series('omnisharptest:unit', 'omnisharptest:integration:stdio'));
+function createOmniSharpTestSubTasks() {
+ gulp.task('omnisharptest:unit', async () => {
+ await runJestTest(jestOmniSharpUnitTestProjectName);
+ });
-gulp.task('test:unit', async () => {
- await runJestTest(jestUnitTestProjectName);
-});
+ const omnisharpIntegrationTestProjects = [
+ 'singleCsproj',
+ 'slnWithCsproj',
+ 'slnFilterWithCsproj',
+ 'BasicRazorApp2_1',
+ ];
-const integrationTestProjects = ['slnWithCsproj'];
-for (const projectName of integrationTestProjects) {
- gulp.task(`test:integration:${projectName}`, async () =>
- runIntegrationTest(
- projectName,
- path.join('lsptoolshost', 'integrationTests'),
- `Test Integration ${projectName}`
+ for (const projectName of omnisharpIntegrationTestProjects) {
+ gulp.task(`omnisharptest:integration:${projectName}:stdio`, async () =>
+ runOmnisharpJestIntegrationTest(projectName, 'stdio', `[O#][${projectName}][STDIO]`)
+ );
+ gulp.task(`omnisharptest:integration:${projectName}:lsp`, async () =>
+ runOmnisharpJestIntegrationTest(projectName, 'lsp', `[O#][${projectName}][LSP]`)
+ );
+ gulp.task(
+ `omnisharptest:integration:${projectName}`,
+ gulp.series(
+ `omnisharptest:integration:${projectName}:stdio`,
+ `omnisharptest:integration:${projectName}:lsp`
+ )
+ );
+ }
+
+ gulp.task(
+ 'omnisharptest:integration',
+ gulp.series(omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}`))
+ );
+ gulp.task(
+ 'omnisharptest:integration:stdio',
+ gulp.series(
+ omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}:stdio`)
+ )
+ );
+ gulp.task(
+ 'omnisharptest:integration:lsp',
+ gulp.series(
+ omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}:lsp`)
)
);
}
-gulp.task(
- 'test:integration',
- gulp.series(integrationTestProjects.map((projectName) => `test:integration:${projectName}`))
-);
-
-gulp.task('test', gulp.series('test:unit', 'test:integration', 'test:razor', 'test:razorintegration'));
-
async function runOmnisharpJestIntegrationTest(testAssetName: string, engine: 'stdio' | 'lsp', suiteName: string) {
const workspaceFile = `omnisharp${engine === 'lsp' ? '_lsp' : ''}_${testAssetName}.code-workspace`;
const testFolder = path.join('test', 'omnisharp', 'omnisharpIntegrationTests');
@@ -111,10 +159,56 @@ async function runOmnisharpJestIntegrationTest(testAssetName: string, engine: 's
await runJestIntegrationTest(testAssetName, testFolder, workspaceFile, suiteName, env);
}
-async function runIntegrationTest(testAssetName: string, testFolderName: string, suiteName: string) {
- const vscodeWorkspaceFileName = `lsp_tools_host_${testAssetName}.code-workspace`;
+async function runDevKitIntegrationTests(testAssetName: string, testFolderName: string, suiteName: string) {
+ // Tests using C# Dev Kit tests are a bit different from the rest - we are not able to restart the Dev Kit server and there
+ // are not easy APIs to use to know if the project is reloading due to workspace changes.
+ // So we have to isolate the C# Dev Kit tests into smaller test runs (in this case, per file), where each run
+ // launches VSCode and runs the tests in that file.
+ const testFolder = path.join(rootPath, 'test', testFolderName);
+ console.log(`Searching for test files in ${testFolder}`);
+ const allFiles = fs
+ .readdirSync(testFolder, {
+ recursive: true,
+ })
+ .filter((f) => typeof f === 'string');
+ const devKitTestFiles = allFiles.filter((f) => f.endsWith('.test.ts')).map((f) => path.join(testFolder, f));
+ if (devKitTestFiles.length === 0) {
+ throw new Error(`No test files found in ${testFolder}`);
+ }
+
+ let failed: boolean = false;
+ for (const testFile of devKitTestFiles) {
+ try {
+ await runIntegrationTest(
+ testAssetName,
+ testFolderName,
+ suiteName,
+ `devkit_${testAssetName}.code-workspace`,
+ testFile
+ );
+ } catch (err) {
+ // We have to catch the error to continue running tests from the rest of the files.
+ console.error(`##[error] Tests in ${path.basename(testFile)} failed`, err);
+ failed = true;
+ }
+ }
+
+ if (failed) {
+ // Ensure the task fails if any tests failed.
+ throw new Error(`One or more tests failed`);
+ }
+}
+
+async function runIntegrationTest(
+ testAssetName: string,
+ testFolderName: string,
+ suiteName: string,
+ vscodeWorkspaceFileName = `${testAssetName}.code-workspace`,
+ testFile: string | undefined = undefined
+) {
const testFolder = path.join('test', testFolderName);
- return await runJestIntegrationTest(testAssetName, testFolder, vscodeWorkspaceFileName, suiteName);
+ const env: NodeJS.ProcessEnv = {};
+ return await runJestIntegrationTest(testAssetName, testFolder, vscodeWorkspaceFileName, suiteName, env, testFile);
}
/**
@@ -124,14 +218,21 @@ async function runIntegrationTest(testAssetName: string, testFolderName: string,
* @param workspaceFileName the name of the vscode workspace file to use.
* @param suiteName a unique name for the test suite being run.
* @param env any environment variables needed.
+ * @param testFile the full path to a specific test file to run.
*/
async function runJestIntegrationTest(
testAssetName: string,
testFolderName: string,
workspaceFileName: string,
suiteName: string,
- env: NodeJS.ProcessEnv = {}
+ env: NodeJS.ProcessEnv = {},
+ testFile: string | undefined = undefined
) {
+ const logName = testFile ? `${suiteName}_${path.basename(testFile)}` : suiteName;
+
+ // Set VSCode to produce logs in a unique directory for this test run.
+ const userDataDir = path.join(outPath, 'userData', logName);
+
// Test assets are always in a testAssets folder inside the integration test folder.
const assetsPath = path.join(rootPath, testFolderName, 'testAssets');
if (!fs.existsSync(assetsPath)) {
@@ -142,33 +243,39 @@ async function runJestIntegrationTest(
throw new Error(`Could not find vscode workspace to open at ${workspacePath}`);
}
- // The launcher (that downloads and opens vscode) is always compiled to out/test/vscodeLauncher.js
- const launcherPath = path.join(outPath, 'test', 'vscodeLauncher.js');
- if (!fs.existsSync(launcherPath)) {
- throw new Error('Could not find test runner in out/ directory');
- }
// The runner (that loads in the vscode process to run tests) is in the test folder in the *output* directory.
const vscodeRunnerPath = path.join(outPath, testFolderName, 'index.js');
if (!fs.existsSync(vscodeRunnerPath)) {
throw new Error(`Could not find vscode runner in out/ at ${vscodeRunnerPath}`);
}
- env.CODE_TESTS_WORKSPACE = workspacePath;
- env.CODE_EXTENSIONS_PATH = rootPath;
- env.EXTENSIONS_TESTS_PATH = vscodeRunnerPath;
-
// Configure the file and suite name in CI to avoid having multiple test runs stomp on each other.
- env.JEST_JUNIT_OUTPUT_NAME = getJUnitFileName(suiteName);
+ env.JEST_JUNIT_OUTPUT_NAME = getJUnitFileName(logName);
env.JEST_SUITE_NAME = suiteName;
- const result = await spawnNode([launcherPath, '--enable-source-maps'], { env, cwd: rootPath });
-
- if (result.code === null || result.code > 0) {
- // Ensure that gulp fails when tests fail
- throw new Error(`Exit code: ${result.code} Signal: ${result.signal}`);
+ if (testFile) {
+ console.log(`Setting test file filter to: ${testFile}`);
+ process.env.TEST_FILE_FILTER = testFile;
}
- return result;
+ try {
+ const result = await prepareVSCodeAndExecuteTests(rootPath, vscodeRunnerPath, workspacePath, userDataDir, env);
+ if (result > 0) {
+ // The VSCode API will generally throw if jest fails the test, but we can get errors before the test runs (e.g. launching VSCode).
+ // So here we make sure to error if we don't get a clean exit code.
+ throw new Error(`Exit code: ${result}`);
+ }
+
+ return result;
+ } catch (err) {
+ // If we hit an error, copy the logs VSCode produced to a directory that CI can find.
+ const vscodeLogs = path.join(userDataDir, 'logs');
+ const logOutputPath = path.join(outPath, 'logs', logName);
+ console.log(`Copying logs from ${vscodeLogs} to ${logOutputPath}`);
+ fs.cpSync(vscodeLogs, logOutputPath, { recursive: true, force: true });
+
+ throw err;
+ }
}
async function runJestTest(project: string) {
@@ -189,6 +296,6 @@ async function runJestTest(project: string) {
}
}
-function getJUnitFileName(suiteName: string) {
- return `${suiteName.replaceAll(' ', '_')}_junit.xml`;
+function getJUnitFileName(logName: string) {
+ return `${logName.replaceAll(' ', '_')}_junit.xml`;
}
diff --git a/test/csharp-standalone-profile.code-profile b/test/csharp-standalone-profile.code-profile
deleted file mode 100644
index 795669a96..000000000
--- a/test/csharp-standalone-profile.code-profile
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"csharp-standalone-profile","extensions":"[{\"identifier\":{\"id\":\"ms-dotnettools.csharp\",\"uuid\":\"d0bfc4ab-1d3a-4487-8782-7cf6027b4fff\"},\"displayName\":\"C#\"},{\"identifier\":{\"id\":\"ms-dotnettools.vscode-dotnet-runtime\",\"uuid\":\"1aab81a1-b3d9-4aef-976b-577d5d90fe3f\"},\"displayName\":\".NET Install Tool\"}]","globalState":"{\"storage\":{\"workbench.panel.pinnedPanels\":\"[{\\\"id\\\":\\\"workbench.panel.markers\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":0},{\\\"id\\\":\\\"workbench.panel.output\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":1},{\\\"id\\\":\\\"refactorPreview\\\",\\\"pinned\\\":true,\\\"visible\\\":false},{\\\"id\\\":\\\"workbench.panel.testResults\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":3},{\\\"id\\\":\\\"terminal\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":3},{\\\"id\\\":\\\"~remote.forwardedPortsContainer\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":5},{\\\"id\\\":\\\"workbench.panel.repl\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":2},{\\\"id\\\":\\\"workbench.panel.comments\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":10}]\",\"workbench.activity.pinnedViewlets2\":\"[{\\\"id\\\":\\\"workbench.view.explorer\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":0},{\\\"id\\\":\\\"workbench.view.debug\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":3},{\\\"id\\\":\\\"workbench.view.remote\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":4},{\\\"id\\\":\\\"workbench.view.scm\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":2},{\\\"id\\\":\\\"workbench.view.extension.test\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":6},{\\\"id\\\":\\\"workbench.view.extensions\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":4},{\\\"id\\\":\\\"workbench.view.search\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":1},{\\\"id\\\":\\\"workbench.panel.chatSidebar\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":100},{\\\"id\\\":\\\"workbench.view.extension.references-view\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":7},{\\\"id\\\":\\\"workbench.view.sync\\\",\\\"pinned\\\":true,\\\"visible\\\":false},{\\\"id\\\":\\\"workbench.view.editSessions\\\",\\\"pinned\\\":true,\\\"visible\\\":false}]\",\"workbench.explorer.views.state.hidden\":\"[{\\\"id\\\":\\\"workbench.explorer.openEditorsView\\\",\\\"isHidden\\\":false,\\\"order\\\":0},{\\\"id\\\":\\\"solutionExplorer\\\",\\\"isHidden\\\":false,\\\"order\\\":1},{\\\"id\\\":\\\"workbench.explorer.fileView\\\",\\\"isHidden\\\":false,\\\"order\\\":2},{\\\"id\\\":\\\"outline\\\",\\\"isHidden\\\":false,\\\"order\\\":3},{\\\"id\\\":\\\"timeline\\\",\\\"isHidden\\\":false,\\\"order\\\":4},{\\\"id\\\":\\\"npm\\\",\\\"isHidden\\\":true,\\\"order\\\":5},{\\\"id\\\":\\\"copilot-chat-requests\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.graph\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.graphDetails\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"azureActivityLog\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"syntaxTree\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.home\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"operationTree\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.launchpad\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.drafts\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.workspaces\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.account\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.commitDetails\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.pullRequest\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.lineHistory\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.fileHistory\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.timeline\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.searchAndCompare\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.patchDetails\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"azureFocusView\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"azureResourceGroups\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"azureWorkspace\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"ms-azuretools.helpAndFeedback\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"dockerContainers\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"dockerImages\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"dockerRegistries\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"dockerNetworks\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"dockerVolumes\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"vscode-docker.views.dockerContexts\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"vscode-docker.views.help\\\",\\\"isHidden\\\":false}]\",\"colorThemeData\":\"{\\\"id\\\":\\\"vs-dark vscode-theme-defaults-themes-dark_modern-json\\\",\\\"label\\\":\\\"Dark Modern\\\",\\\"settingsId\\\":\\\"Default Dark Modern\\\",\\\"themeTokenColors\\\":[{\\\"settings\\\":{\\\"foreground\\\":\\\"#D4D4D4\\\"},\\\"scope\\\":[\\\"meta.embedded\\\",\\\"source.groovy.embedded\\\",\\\"string meta.image.inline.markdown\\\",\\\"variable.legacy.builtin.python\\\"]},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"italic\\\"},\\\"scope\\\":\\\"emphasis\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\"},\\\"scope\\\":\\\"strong\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#000080\\\"},\\\"scope\\\":\\\"header\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#6A9955\\\"},\\\"scope\\\":\\\"comment\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"constant.language\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":[\\\"constant.numeric\\\",\\\"variable.other.enummember\\\",\\\"keyword.operator.plus.exponent\\\",\\\"keyword.operator.minus.exponent\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#646695\\\"},\\\"scope\\\":\\\"constant.regexp\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"entity.name.tag\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"},\\\"scope\\\":[\\\"entity.name.tag.css\\\",\\\"entity.name.tag.less\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"},\\\"scope\\\":\\\"entity.other.attribute-name\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"},\\\"scope\\\":[\\\"entity.other.attribute-name.class.css\\\",\\\"source.css entity.other.attribute-name.class\\\",\\\"entity.other.attribute-name.id.css\\\",\\\"entity.other.attribute-name.parent-selector.css\\\",\\\"entity.other.attribute-name.parent.less\\\",\\\"source.css entity.other.attribute-name.pseudo-class\\\",\\\"entity.other.attribute-name.pseudo-element.css\\\",\\\"source.css.less entity.other.attribute-name.id\\\",\\\"entity.other.attribute-name.scss\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#f44747\\\"},\\\"scope\\\":\\\"invalid\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"underline\\\"},\\\"scope\\\":\\\"markup.underline\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\",\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"markup.bold\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\",\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"markup.heading\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"italic\\\"},\\\"scope\\\":\\\"markup.italic\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"strikethrough\\\"},\\\"scope\\\":\\\"markup.strikethrough\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":\\\"markup.inserted\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"markup.deleted\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"markup.changed\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#6A9955\\\"},\\\"scope\\\":\\\"punctuation.definition.quote.begin.markdown\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#6796e6\\\"},\\\"scope\\\":\\\"punctuation.definition.list.begin.markdown\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"markup.inline.raw\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#808080\\\"},\\\"scope\\\":\\\"punctuation.definition.tag\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"meta.preprocessor\\\",\\\"entity.name.function.preprocessor\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"meta.preprocessor.string\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":\\\"meta.preprocessor.numeric\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"},\\\"scope\\\":\\\"meta.structure.dictionary.key.python\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"meta.diff.header\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"storage\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"storage.type\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"storage.modifier\\\",\\\"keyword.operator.noexcept\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":[\\\"string\\\",\\\"meta.embedded.assembly\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"string.tag\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"string.value\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d16969\\\"},\\\"scope\\\":\\\"string.regexp\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"punctuation.definition.template-expression.begin\\\",\\\"punctuation.definition.template-expression.end\\\",\\\"punctuation.section.embedded\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"},\\\"scope\\\":[\\\"meta.template.expression\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"},\\\"scope\\\":[\\\"support.type.vendored.property-name\\\",\\\"support.type.property-name\\\",\\\"source.css variable\\\",\\\"source.coffee.embedded\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"keyword\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"keyword.control\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"},\\\"scope\\\":\\\"keyword.operator\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"keyword.operator.new\\\",\\\"keyword.operator.expression\\\",\\\"keyword.operator.cast\\\",\\\"keyword.operator.sizeof\\\",\\\"keyword.operator.alignof\\\",\\\"keyword.operator.typeid\\\",\\\"keyword.operator.alignas\\\",\\\"keyword.operator.instanceof\\\",\\\"keyword.operator.logical.python\\\",\\\"keyword.operator.wordlike\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":\\\"keyword.other.unit\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"punctuation.section.embedded.begin.php\\\",\\\"punctuation.section.embedded.end.php\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"},\\\"scope\\\":\\\"support.function.git-rebase\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":\\\"constant.sha.git-rebase\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"},\\\"scope\\\":[\\\"storage.modifier.import.java\\\",\\\"variable.language.wildcard.java\\\",\\\"storage.modifier.package.java\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"variable.language\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#DCDCAA\\\"},\\\"scope\\\":[\\\"entity.name.function\\\",\\\"support.function\\\",\\\"support.constant.handlebars\\\",\\\"source.powershell variable.other.member\\\",\\\"entity.name.operator.custom-literal\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#4EC9B0\\\"},\\\"scope\\\":[\\\"support.class\\\",\\\"support.type\\\",\\\"entity.name.type\\\",\\\"entity.name.namespace\\\",\\\"entity.other.attribute\\\",\\\"entity.name.scope-resolution\\\",\\\"entity.name.class\\\",\\\"storage.type.numeric.go\\\",\\\"storage.type.byte.go\\\",\\\"storage.type.boolean.go\\\",\\\"storage.type.string.go\\\",\\\"storage.type.uintptr.go\\\",\\\"storage.type.error.go\\\",\\\"storage.type.rune.go\\\",\\\"storage.type.cs\\\",\\\"storage.type.generic.cs\\\",\\\"storage.type.modifier.cs\\\",\\\"storage.type.variable.cs\\\",\\\"storage.type.annotation.java\\\",\\\"storage.type.generic.java\\\",\\\"storage.type.java\\\",\\\"storage.type.object.array.java\\\",\\\"storage.type.primitive.array.java\\\",\\\"storage.type.primitive.java\\\",\\\"storage.type.token.java\\\",\\\"storage.type.groovy\\\",\\\"storage.type.annotation.groovy\\\",\\\"storage.type.parameters.groovy\\\",\\\"storage.type.generic.groovy\\\",\\\"storage.type.object.array.groovy\\\",\\\"storage.type.primitive.array.groovy\\\",\\\"storage.type.primitive.groovy\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#4EC9B0\\\"},\\\"scope\\\":[\\\"meta.type.cast.expr\\\",\\\"meta.type.new.expr\\\",\\\"support.constant.math\\\",\\\"support.constant.dom\\\",\\\"support.constant.json\\\",\\\"entity.other.inherited-class\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#C586C0\\\"},\\\"scope\\\":[\\\"keyword.control\\\",\\\"source.cpp keyword.operator.new\\\",\\\"keyword.operator.delete\\\",\\\"keyword.other.using\\\",\\\"keyword.other.directive.using\\\",\\\"keyword.other.operator\\\",\\\"entity.name.operator\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9CDCFE\\\"},\\\"scope\\\":[\\\"variable\\\",\\\"meta.definition.variable.name\\\",\\\"support.variable\\\",\\\"entity.name.variable\\\",\\\"constant.other.placeholder\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#4FC1FF\\\"},\\\"scope\\\":[\\\"variable.other.constant\\\",\\\"variable.other.enummember\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9CDCFE\\\"},\\\"scope\\\":[\\\"meta.object-literal.key\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#CE9178\\\"},\\\"scope\\\":[\\\"support.constant.property-value\\\",\\\"support.constant.font-name\\\",\\\"support.constant.media-type\\\",\\\"support.constant.media\\\",\\\"constant.other.color.rgb-value\\\",\\\"constant.other.rgb-value\\\",\\\"support.constant.color\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#CE9178\\\"},\\\"scope\\\":[\\\"punctuation.definition.group.regexp\\\",\\\"punctuation.definition.group.assertion.regexp\\\",\\\"punctuation.definition.character-class.regexp\\\",\\\"punctuation.character.set.begin.regexp\\\",\\\"punctuation.character.set.end.regexp\\\",\\\"keyword.operator.negation.regexp\\\",\\\"support.other.parenthesis.regexp\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d16969\\\"},\\\"scope\\\":[\\\"constant.character.character-class.regexp\\\",\\\"constant.other.character-class.set.regexp\\\",\\\"constant.other.character-class.regexp\\\",\\\"constant.character.set.regexp\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#DCDCAA\\\"},\\\"scope\\\":[\\\"keyword.operator.or.regexp\\\",\\\"keyword.control.anchor.regexp\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"},\\\"scope\\\":\\\"keyword.operator.quantifier.regexp\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"constant.character\\\",\\\"constant.other.option\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"},\\\"scope\\\":\\\"constant.character.escape\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#C8C8C8\\\"},\\\"scope\\\":\\\"entity.name.label\\\"}],\\\"semanticTokenRules\\\":[{\\\"_selector\\\":\\\"newOperator\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#d4d4d4\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"stringLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#ce9178\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"customLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#d4d4d4\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"numberLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#b5cea8\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"newOperator\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#c586c0\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"stringLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#ce9178\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"customLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#dcdcaa\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"numberLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#b5cea8\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}}],\\\"extensionData\\\":{\\\"_extensionId\\\":\\\"vscode.theme-defaults\\\",\\\"_extensionIsBuiltin\\\":true,\\\"_extensionName\\\":\\\"theme-defaults\\\",\\\"_extensionPublisher\\\":\\\"vscode\\\"},\\\"themeSemanticHighlighting\\\":true,\\\"colorMap\\\":{\\\"checkbox.border\\\":\\\"#3c3c3c\\\",\\\"editor.background\\\":\\\"#1f1f1f\\\",\\\"editor.foreground\\\":\\\"#cccccc\\\",\\\"editor.inactiveSelectionBackground\\\":\\\"#3a3d41\\\",\\\"editorIndentGuide.background1\\\":\\\"#404040\\\",\\\"editorIndentGuide.activeBackground1\\\":\\\"#707070\\\",\\\"editor.selectionHighlightBackground\\\":\\\"#add6ff26\\\",\\\"list.dropBackground\\\":\\\"#383b3d\\\",\\\"activityBarBadge.background\\\":\\\"#0078d4\\\",\\\"sideBarTitle.foreground\\\":\\\"#cccccc\\\",\\\"input.placeholderForeground\\\":\\\"#989898\\\",\\\"menu.background\\\":\\\"#1f1f1f\\\",\\\"menu.foreground\\\":\\\"#cccccc\\\",\\\"menu.separatorBackground\\\":\\\"#454545\\\",\\\"menu.border\\\":\\\"#454545\\\",\\\"menu.selectionBackground\\\":\\\"#0078d4\\\",\\\"statusBarItem.remoteForeground\\\":\\\"#ffffff\\\",\\\"statusBarItem.remoteBackground\\\":\\\"#0078d4\\\",\\\"ports.iconRunningProcessForeground\\\":\\\"#369432\\\",\\\"sideBarSectionHeader.background\\\":\\\"#181818\\\",\\\"sideBarSectionHeader.border\\\":\\\"#2b2b2b\\\",\\\"tab.selectedBackground\\\":\\\"#222222\\\",\\\"tab.selectedForeground\\\":\\\"#ffffffa0\\\",\\\"tab.lastPinnedBorder\\\":\\\"#cccccc33\\\",\\\"list.activeSelectionIconForeground\\\":\\\"#ffffff\\\",\\\"terminal.inactiveSelectionBackground\\\":\\\"#3a3d41\\\",\\\"widget.border\\\":\\\"#313131\\\",\\\"actionBar.toggledBackground\\\":\\\"#383a49\\\",\\\"activityBar.activeBorder\\\":\\\"#0078d4\\\",\\\"activityBar.background\\\":\\\"#181818\\\",\\\"activityBar.border\\\":\\\"#2b2b2b\\\",\\\"activityBar.foreground\\\":\\\"#d7d7d7\\\",\\\"activityBar.inactiveForeground\\\":\\\"#868686\\\",\\\"activityBarBadge.foreground\\\":\\\"#ffffff\\\",\\\"badge.background\\\":\\\"#616161\\\",\\\"badge.foreground\\\":\\\"#f8f8f8\\\",\\\"button.background\\\":\\\"#0078d4\\\",\\\"button.border\\\":\\\"#ffffff12\\\",\\\"button.foreground\\\":\\\"#ffffff\\\",\\\"button.hoverBackground\\\":\\\"#026ec1\\\",\\\"button.secondaryBackground\\\":\\\"#313131\\\",\\\"button.secondaryForeground\\\":\\\"#cccccc\\\",\\\"button.secondaryHoverBackground\\\":\\\"#3c3c3c\\\",\\\"chat.slashCommandBackground\\\":\\\"#34414b\\\",\\\"chat.slashCommandForeground\\\":\\\"#40a6ff\\\",\\\"checkbox.background\\\":\\\"#313131\\\",\\\"debugToolBar.background\\\":\\\"#181818\\\",\\\"descriptionForeground\\\":\\\"#9d9d9d\\\",\\\"dropdown.background\\\":\\\"#313131\\\",\\\"dropdown.border\\\":\\\"#3c3c3c\\\",\\\"dropdown.foreground\\\":\\\"#cccccc\\\",\\\"dropdown.listBackground\\\":\\\"#1f1f1f\\\",\\\"editor.findMatchBackground\\\":\\\"#9e6a03\\\",\\\"editorGroup.border\\\":\\\"#ffffff17\\\",\\\"editorGroupHeader.tabsBackground\\\":\\\"#181818\\\",\\\"editorGroupHeader.tabsBorder\\\":\\\"#2b2b2b\\\",\\\"editorGutter.addedBackground\\\":\\\"#2ea043\\\",\\\"editorGutter.deletedBackground\\\":\\\"#f85149\\\",\\\"editorGutter.modifiedBackground\\\":\\\"#0078d4\\\",\\\"editorLineNumber.activeForeground\\\":\\\"#cccccc\\\",\\\"editorLineNumber.foreground\\\":\\\"#6e7681\\\",\\\"editorOverviewRuler.border\\\":\\\"#010409\\\",\\\"editorWidget.background\\\":\\\"#202020\\\",\\\"errorForeground\\\":\\\"#f85149\\\",\\\"focusBorder\\\":\\\"#0078d4\\\",\\\"foreground\\\":\\\"#cccccc\\\",\\\"icon.foreground\\\":\\\"#cccccc\\\",\\\"input.background\\\":\\\"#313131\\\",\\\"input.border\\\":\\\"#3c3c3c\\\",\\\"input.foreground\\\":\\\"#cccccc\\\",\\\"inputOption.activeBackground\\\":\\\"#2489db82\\\",\\\"inputOption.activeBorder\\\":\\\"#2488db\\\",\\\"keybindingLabel.foreground\\\":\\\"#cccccc\\\",\\\"notificationCenterHeader.background\\\":\\\"#1f1f1f\\\",\\\"notificationCenterHeader.foreground\\\":\\\"#cccccc\\\",\\\"notifications.background\\\":\\\"#1f1f1f\\\",\\\"notifications.border\\\":\\\"#2b2b2b\\\",\\\"notifications.foreground\\\":\\\"#cccccc\\\",\\\"panel.background\\\":\\\"#181818\\\",\\\"panel.border\\\":\\\"#2b2b2b\\\",\\\"panelInput.border\\\":\\\"#2b2b2b\\\",\\\"panelTitle.activeBorder\\\":\\\"#0078d4\\\",\\\"panelTitle.activeForeground\\\":\\\"#cccccc\\\",\\\"panelTitle.inactiveForeground\\\":\\\"#9d9d9d\\\",\\\"peekViewEditor.background\\\":\\\"#1f1f1f\\\",\\\"peekViewEditor.matchHighlightBackground\\\":\\\"#bb800966\\\",\\\"peekViewResult.background\\\":\\\"#1f1f1f\\\",\\\"peekViewResult.matchHighlightBackground\\\":\\\"#bb800966\\\",\\\"pickerGroup.border\\\":\\\"#3c3c3c\\\",\\\"progressBar.background\\\":\\\"#0078d4\\\",\\\"quickInput.background\\\":\\\"#222222\\\",\\\"quickInput.foreground\\\":\\\"#cccccc\\\",\\\"settings.dropdownBackground\\\":\\\"#313131\\\",\\\"settings.dropdownBorder\\\":\\\"#3c3c3c\\\",\\\"settings.headerForeground\\\":\\\"#ffffff\\\",\\\"settings.modifiedItemIndicator\\\":\\\"#bb800966\\\",\\\"sideBar.background\\\":\\\"#181818\\\",\\\"sideBar.border\\\":\\\"#2b2b2b\\\",\\\"sideBar.foreground\\\":\\\"#cccccc\\\",\\\"sideBarSectionHeader.foreground\\\":\\\"#cccccc\\\",\\\"statusBar.background\\\":\\\"#181818\\\",\\\"statusBar.border\\\":\\\"#2b2b2b\\\",\\\"statusBar.debuggingBackground\\\":\\\"#0078d4\\\",\\\"statusBar.debuggingForeground\\\":\\\"#ffffff\\\",\\\"statusBar.focusBorder\\\":\\\"#0078d4\\\",\\\"statusBar.foreground\\\":\\\"#cccccc\\\",\\\"statusBar.noFolderBackground\\\":\\\"#1f1f1f\\\",\\\"statusBarItem.focusBorder\\\":\\\"#0078d4\\\",\\\"statusBarItem.prominentBackground\\\":\\\"#6e768166\\\",\\\"tab.activeBackground\\\":\\\"#1f1f1f\\\",\\\"tab.activeBorder\\\":\\\"#1f1f1f\\\",\\\"tab.activeBorderTop\\\":\\\"#0078d4\\\",\\\"tab.activeForeground\\\":\\\"#ffffff\\\",\\\"tab.selectedBorderTop\\\":\\\"#6caddf\\\",\\\"tab.border\\\":\\\"#2b2b2b\\\",\\\"tab.hoverBackground\\\":\\\"#1f1f1f\\\",\\\"tab.inactiveBackground\\\":\\\"#181818\\\",\\\"tab.inactiveForeground\\\":\\\"#9d9d9d\\\",\\\"tab.unfocusedActiveBorder\\\":\\\"#1f1f1f\\\",\\\"tab.unfocusedActiveBorderTop\\\":\\\"#2b2b2b\\\",\\\"tab.unfocusedHoverBackground\\\":\\\"#1f1f1f\\\",\\\"terminal.foreground\\\":\\\"#cccccc\\\",\\\"terminal.tab.activeBorder\\\":\\\"#0078d4\\\",\\\"textBlockQuote.background\\\":\\\"#2b2b2b\\\",\\\"textBlockQuote.border\\\":\\\"#616161\\\",\\\"textCodeBlock.background\\\":\\\"#2b2b2b\\\",\\\"textLink.activeForeground\\\":\\\"#4daafc\\\",\\\"textLink.foreground\\\":\\\"#4daafc\\\",\\\"textPreformat.foreground\\\":\\\"#d0d0d0\\\",\\\"textPreformat.background\\\":\\\"#3c3c3c\\\",\\\"textSeparator.foreground\\\":\\\"#21262d\\\",\\\"titleBar.activeBackground\\\":\\\"#181818\\\",\\\"titleBar.activeForeground\\\":\\\"#cccccc\\\",\\\"titleBar.border\\\":\\\"#2b2b2b\\\",\\\"titleBar.inactiveBackground\\\":\\\"#1f1f1f\\\",\\\"titleBar.inactiveForeground\\\":\\\"#9d9d9d\\\",\\\"welcomePage.tileBackground\\\":\\\"#2b2b2b\\\",\\\"welcomePage.progress.foreground\\\":\\\"#0078d4\\\"},\\\"watch\\\":false}\",\"workbench.view.extension.gitlens.state.hidden\":\"[{\\\"id\\\":\\\"gitlens.views.home\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.launchpad\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.drafts\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.workspaces\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"gitlens.views.account\\\",\\\"isHidden\\\":false}]\",\"terminal.hidden\":\"[{\\\"id\\\":\\\"terminal\\\",\\\"isHidden\\\":false}]\",\"workbench.scm.views.state.hidden\":\"[{\\\"id\\\":\\\"workbench.scm.repositories\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.scm\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.scm.history\\\",\\\"isHidden\\\":false}]\",\"workbench.panel.chatSidebar.hidden\":\"[{\\\"id\\\":\\\"workbench.panel.chat.view.copilot\\\",\\\"isHidden\\\":false}]\",\"workbench.panel.alignment\":\"center\",\"workbench.view.extensions.state.hidden\":\"[{\\\"id\\\":\\\"workbench.views.extensions.installed\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchOutdated\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.workspaceRecommendations\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.popular\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchRecentlyUpdated\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.otherRecommendations\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"extensions.recommendedList\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.enabled\\\",\\\"isHidden\\\":true},{\\\"id\\\":\\\"workbench.views.extensions.disabled\\\",\\\"isHidden\\\":true},{\\\"id\\\":\\\"workbench.views.extensions.marketplace\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchInstalled\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchEnabled\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchDisabled\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchBuiltin\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchWorkspaceUnsupported\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.builtinFeatureExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.builtinThemeExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.builtinProgrammingLanguageExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.untrustedUnsupportedExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.untrustedPartiallySupportedExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.virtualUnsupportedExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.virtualPartiallySupportedExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.deprecatedExtensions\\\",\\\"isHidden\\\":false}]\"}}"}
\ No newline at end of file
diff --git a/test/csharp-test-profile.code-profile b/test/csharp-test-profile.code-profile
new file mode 100644
index 000000000..7c6621563
--- /dev/null
+++ b/test/csharp-test-profile.code-profile
@@ -0,0 +1 @@
+{"name":"csharp-test-profile","extensions":"[{\"identifier\":{\"id\":\"ms-dotnettools.csdevkit\",\"uuid\":\"7ad42776-8f7e-4214-bf67-4f0b518ef629\"},\"displayName\":\"C# Dev Kit\"},{\"identifier\":{\"id\":\"ms-dotnettools.csharp\",\"uuid\":\"d0bfc4ab-1d3a-4487-8782-7cf6027b4fff\"},\"displayName\":\"C#\"},{\"identifier\":{\"id\":\"ms-dotnettools.vscode-dotnet-runtime\",\"uuid\":\"1aab81a1-b3d9-4aef-976b-577d5d90fe3f\"},\"displayName\":\".NET Install Tool\"}]","globalState":"{\"storage\":{\"workbench.panel.pinnedPanels\":\"[{\\\"id\\\":\\\"workbench.panel.output\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":1},{\\\"id\\\":\\\"workbench.panel.testResults\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":3},{\\\"id\\\":\\\"terminal\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":3},{\\\"id\\\":\\\"~remote.forwardedPortsContainer\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":5},{\\\"id\\\":\\\"refactorPreview\\\",\\\"pinned\\\":true,\\\"visible\\\":false},{\\\"id\\\":\\\"workbench.panel.repl\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":2},{\\\"id\\\":\\\"workbench.panel.comments\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":10},{\\\"id\\\":\\\"workbench.panel.markers\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":0}]\",\"workbench.activity.pinnedViewlets2\":\"[{\\\"id\\\":\\\"workbench.view.explorer\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":0},{\\\"id\\\":\\\"workbench.view.search\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":1},{\\\"id\\\":\\\"workbench.view.debug\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":3},{\\\"id\\\":\\\"workbench.view.scm\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":2},{\\\"id\\\":\\\"workbench.view.remote\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":4},{\\\"id\\\":\\\"workbench.view.extensions\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":4},{\\\"id\\\":\\\"workbench.view.extension.test\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":6},{\\\"id\\\":\\\"workbench.view.extension.references-view\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":7},{\\\"id\\\":\\\"workbench.panel.chatSidebar\\\",\\\"pinned\\\":true,\\\"visible\\\":false,\\\"order\\\":100},{\\\"id\\\":\\\"workbench.view.sync\\\",\\\"pinned\\\":true,\\\"visible\\\":false},{\\\"id\\\":\\\"workbench.view.editSessions\\\",\\\"pinned\\\":true,\\\"visible\\\":false}]\",\"colorThemeData\":\"{\\\"id\\\":\\\"vs-dark vscode-theme-defaults-themes-dark_modern-json\\\",\\\"label\\\":\\\"Dark Modern\\\",\\\"settingsId\\\":\\\"Default Dark Modern\\\",\\\"themeTokenColors\\\":[{\\\"settings\\\":{\\\"foreground\\\":\\\"#D4D4D4\\\"},\\\"scope\\\":[\\\"meta.embedded\\\",\\\"source.groovy.embedded\\\",\\\"string meta.image.inline.markdown\\\",\\\"variable.legacy.builtin.python\\\"]},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"italic\\\"},\\\"scope\\\":\\\"emphasis\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\"},\\\"scope\\\":\\\"strong\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#000080\\\"},\\\"scope\\\":\\\"header\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#6A9955\\\"},\\\"scope\\\":\\\"comment\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"constant.language\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":[\\\"constant.numeric\\\",\\\"variable.other.enummember\\\",\\\"keyword.operator.plus.exponent\\\",\\\"keyword.operator.minus.exponent\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#646695\\\"},\\\"scope\\\":\\\"constant.regexp\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"entity.name.tag\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"},\\\"scope\\\":[\\\"entity.name.tag.css\\\",\\\"entity.name.tag.less\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"},\\\"scope\\\":\\\"entity.other.attribute-name\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"},\\\"scope\\\":[\\\"entity.other.attribute-name.class.css\\\",\\\"source.css entity.other.attribute-name.class\\\",\\\"entity.other.attribute-name.id.css\\\",\\\"entity.other.attribute-name.parent-selector.css\\\",\\\"entity.other.attribute-name.parent.less\\\",\\\"source.css entity.other.attribute-name.pseudo-class\\\",\\\"entity.other.attribute-name.pseudo-element.css\\\",\\\"source.css.less entity.other.attribute-name.id\\\",\\\"entity.other.attribute-name.scss\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#f44747\\\"},\\\"scope\\\":\\\"invalid\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"underline\\\"},\\\"scope\\\":\\\"markup.underline\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\",\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"markup.bold\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\",\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"markup.heading\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"italic\\\"},\\\"scope\\\":\\\"markup.italic\\\"},{\\\"settings\\\":{\\\"fontStyle\\\":\\\"strikethrough\\\"},\\\"scope\\\":\\\"markup.strikethrough\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":\\\"markup.inserted\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"markup.deleted\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"markup.changed\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#6A9955\\\"},\\\"scope\\\":\\\"punctuation.definition.quote.begin.markdown\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#6796e6\\\"},\\\"scope\\\":\\\"punctuation.definition.list.begin.markdown\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"markup.inline.raw\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#808080\\\"},\\\"scope\\\":\\\"punctuation.definition.tag\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"meta.preprocessor\\\",\\\"entity.name.function.preprocessor\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"meta.preprocessor.string\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":\\\"meta.preprocessor.numeric\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"},\\\"scope\\\":\\\"meta.structure.dictionary.key.python\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"meta.diff.header\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"storage\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"storage.type\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"storage.modifier\\\",\\\"keyword.operator.noexcept\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":[\\\"string\\\",\\\"meta.embedded.assembly\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"string.tag\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"},\\\"scope\\\":\\\"string.value\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d16969\\\"},\\\"scope\\\":\\\"string.regexp\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"punctuation.definition.template-expression.begin\\\",\\\"punctuation.definition.template-expression.end\\\",\\\"punctuation.section.embedded\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"},\\\"scope\\\":[\\\"meta.template.expression\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"},\\\"scope\\\":[\\\"support.type.vendored.property-name\\\",\\\"support.type.property-name\\\",\\\"source.css variable\\\",\\\"source.coffee.embedded\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"keyword\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"keyword.control\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"},\\\"scope\\\":\\\"keyword.operator\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"keyword.operator.new\\\",\\\"keyword.operator.expression\\\",\\\"keyword.operator.cast\\\",\\\"keyword.operator.sizeof\\\",\\\"keyword.operator.alignof\\\",\\\"keyword.operator.typeid\\\",\\\"keyword.operator.alignas\\\",\\\"keyword.operator.instanceof\\\",\\\"keyword.operator.logical.python\\\",\\\"keyword.operator.wordlike\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":\\\"keyword.other.unit\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"punctuation.section.embedded.begin.php\\\",\\\"punctuation.section.embedded.end.php\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"},\\\"scope\\\":\\\"support.function.git-rebase\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"},\\\"scope\\\":\\\"constant.sha.git-rebase\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"},\\\"scope\\\":[\\\"storage.modifier.import.java\\\",\\\"variable.language.wildcard.java\\\",\\\"storage.modifier.package.java\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":\\\"variable.language\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#DCDCAA\\\"},\\\"scope\\\":[\\\"entity.name.function\\\",\\\"support.function\\\",\\\"support.constant.handlebars\\\",\\\"source.powershell variable.other.member\\\",\\\"entity.name.operator.custom-literal\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#4EC9B0\\\"},\\\"scope\\\":[\\\"support.class\\\",\\\"support.type\\\",\\\"entity.name.type\\\",\\\"entity.name.namespace\\\",\\\"entity.other.attribute\\\",\\\"entity.name.scope-resolution\\\",\\\"entity.name.class\\\",\\\"storage.type.numeric.go\\\",\\\"storage.type.byte.go\\\",\\\"storage.type.boolean.go\\\",\\\"storage.type.string.go\\\",\\\"storage.type.uintptr.go\\\",\\\"storage.type.error.go\\\",\\\"storage.type.rune.go\\\",\\\"storage.type.cs\\\",\\\"storage.type.generic.cs\\\",\\\"storage.type.modifier.cs\\\",\\\"storage.type.variable.cs\\\",\\\"storage.type.annotation.java\\\",\\\"storage.type.generic.java\\\",\\\"storage.type.java\\\",\\\"storage.type.object.array.java\\\",\\\"storage.type.primitive.array.java\\\",\\\"storage.type.primitive.java\\\",\\\"storage.type.token.java\\\",\\\"storage.type.groovy\\\",\\\"storage.type.annotation.groovy\\\",\\\"storage.type.parameters.groovy\\\",\\\"storage.type.generic.groovy\\\",\\\"storage.type.object.array.groovy\\\",\\\"storage.type.primitive.array.groovy\\\",\\\"storage.type.primitive.groovy\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#4EC9B0\\\"},\\\"scope\\\":[\\\"meta.type.cast.expr\\\",\\\"meta.type.new.expr\\\",\\\"support.constant.math\\\",\\\"support.constant.dom\\\",\\\"support.constant.json\\\",\\\"entity.other.inherited-class\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#C586C0\\\"},\\\"scope\\\":[\\\"keyword.control\\\",\\\"source.cpp keyword.operator.new\\\",\\\"keyword.operator.delete\\\",\\\"keyword.other.using\\\",\\\"keyword.other.directive.using\\\",\\\"keyword.other.operator\\\",\\\"entity.name.operator\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9CDCFE\\\"},\\\"scope\\\":[\\\"variable\\\",\\\"meta.definition.variable.name\\\",\\\"support.variable\\\",\\\"entity.name.variable\\\",\\\"constant.other.placeholder\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#4FC1FF\\\"},\\\"scope\\\":[\\\"variable.other.constant\\\",\\\"variable.other.enummember\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#9CDCFE\\\"},\\\"scope\\\":[\\\"meta.object-literal.key\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#CE9178\\\"},\\\"scope\\\":[\\\"support.constant.property-value\\\",\\\"support.constant.font-name\\\",\\\"support.constant.media-type\\\",\\\"support.constant.media\\\",\\\"constant.other.color.rgb-value\\\",\\\"constant.other.rgb-value\\\",\\\"support.constant.color\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#CE9178\\\"},\\\"scope\\\":[\\\"punctuation.definition.group.regexp\\\",\\\"punctuation.definition.group.assertion.regexp\\\",\\\"punctuation.definition.character-class.regexp\\\",\\\"punctuation.character.set.begin.regexp\\\",\\\"punctuation.character.set.end.regexp\\\",\\\"keyword.operator.negation.regexp\\\",\\\"support.other.parenthesis.regexp\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d16969\\\"},\\\"scope\\\":[\\\"constant.character.character-class.regexp\\\",\\\"constant.other.character-class.set.regexp\\\",\\\"constant.other.character-class.regexp\\\",\\\"constant.character.set.regexp\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#DCDCAA\\\"},\\\"scope\\\":[\\\"keyword.operator.or.regexp\\\",\\\"keyword.control.anchor.regexp\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"},\\\"scope\\\":\\\"keyword.operator.quantifier.regexp\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"},\\\"scope\\\":[\\\"constant.character\\\",\\\"constant.other.option\\\"]},{\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"},\\\"scope\\\":\\\"constant.character.escape\\\"},{\\\"settings\\\":{\\\"foreground\\\":\\\"#C8C8C8\\\"},\\\"scope\\\":\\\"entity.name.label\\\"}],\\\"semanticTokenRules\\\":[{\\\"_selector\\\":\\\"newOperator\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#d4d4d4\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"stringLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#ce9178\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"customLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#d4d4d4\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"numberLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#b5cea8\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"newOperator\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#c586c0\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"stringLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#ce9178\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"customLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#dcdcaa\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}},{\\\"_selector\\\":\\\"numberLiteral\\\",\\\"_style\\\":{\\\"_foreground\\\":\\\"#b5cea8\\\",\\\"_bold\\\":null,\\\"_underline\\\":null,\\\"_italic\\\":null,\\\"_strikethrough\\\":null}}],\\\"extensionData\\\":{\\\"_extensionId\\\":\\\"vscode.theme-defaults\\\",\\\"_extensionIsBuiltin\\\":true,\\\"_extensionName\\\":\\\"theme-defaults\\\",\\\"_extensionPublisher\\\":\\\"vscode\\\"},\\\"themeSemanticHighlighting\\\":true,\\\"colorMap\\\":{\\\"checkbox.border\\\":\\\"#3c3c3c\\\",\\\"editor.background\\\":\\\"#1f1f1f\\\",\\\"editor.foreground\\\":\\\"#cccccc\\\",\\\"editor.inactiveSelectionBackground\\\":\\\"#3a3d41\\\",\\\"editorIndentGuide.background1\\\":\\\"#404040\\\",\\\"editorIndentGuide.activeBackground1\\\":\\\"#707070\\\",\\\"editor.selectionHighlightBackground\\\":\\\"#add6ff26\\\",\\\"list.dropBackground\\\":\\\"#383b3d\\\",\\\"activityBarBadge.background\\\":\\\"#0078d4\\\",\\\"sideBarTitle.foreground\\\":\\\"#cccccc\\\",\\\"input.placeholderForeground\\\":\\\"#989898\\\",\\\"menu.background\\\":\\\"#1f1f1f\\\",\\\"menu.foreground\\\":\\\"#cccccc\\\",\\\"menu.separatorBackground\\\":\\\"#454545\\\",\\\"menu.border\\\":\\\"#454545\\\",\\\"menu.selectionBackground\\\":\\\"#0078d4\\\",\\\"statusBarItem.remoteForeground\\\":\\\"#ffffff\\\",\\\"statusBarItem.remoteBackground\\\":\\\"#0078d4\\\",\\\"ports.iconRunningProcessForeground\\\":\\\"#369432\\\",\\\"sideBarSectionHeader.background\\\":\\\"#181818\\\",\\\"sideBarSectionHeader.border\\\":\\\"#2b2b2b\\\",\\\"tab.selectedBackground\\\":\\\"#222222\\\",\\\"tab.selectedForeground\\\":\\\"#ffffffa0\\\",\\\"tab.lastPinnedBorder\\\":\\\"#cccccc33\\\",\\\"list.activeSelectionIconForeground\\\":\\\"#ffffff\\\",\\\"terminal.inactiveSelectionBackground\\\":\\\"#3a3d41\\\",\\\"widget.border\\\":\\\"#313131\\\",\\\"actionBar.toggledBackground\\\":\\\"#383a49\\\",\\\"activityBar.activeBorder\\\":\\\"#0078d4\\\",\\\"activityBar.background\\\":\\\"#181818\\\",\\\"activityBar.border\\\":\\\"#2b2b2b\\\",\\\"activityBar.foreground\\\":\\\"#d7d7d7\\\",\\\"activityBar.inactiveForeground\\\":\\\"#868686\\\",\\\"activityBarBadge.foreground\\\":\\\"#ffffff\\\",\\\"badge.background\\\":\\\"#616161\\\",\\\"badge.foreground\\\":\\\"#f8f8f8\\\",\\\"button.background\\\":\\\"#0078d4\\\",\\\"button.border\\\":\\\"#ffffff12\\\",\\\"button.foreground\\\":\\\"#ffffff\\\",\\\"button.hoverBackground\\\":\\\"#026ec1\\\",\\\"button.secondaryBackground\\\":\\\"#313131\\\",\\\"button.secondaryForeground\\\":\\\"#cccccc\\\",\\\"button.secondaryHoverBackground\\\":\\\"#3c3c3c\\\",\\\"chat.slashCommandBackground\\\":\\\"#34414b\\\",\\\"chat.slashCommandForeground\\\":\\\"#40a6ff\\\",\\\"checkbox.background\\\":\\\"#313131\\\",\\\"debugToolBar.background\\\":\\\"#181818\\\",\\\"descriptionForeground\\\":\\\"#9d9d9d\\\",\\\"dropdown.background\\\":\\\"#313131\\\",\\\"dropdown.border\\\":\\\"#3c3c3c\\\",\\\"dropdown.foreground\\\":\\\"#cccccc\\\",\\\"dropdown.listBackground\\\":\\\"#1f1f1f\\\",\\\"editor.findMatchBackground\\\":\\\"#9e6a03\\\",\\\"editorGroup.border\\\":\\\"#ffffff17\\\",\\\"editorGroupHeader.tabsBackground\\\":\\\"#181818\\\",\\\"editorGroupHeader.tabsBorder\\\":\\\"#2b2b2b\\\",\\\"editorGutter.addedBackground\\\":\\\"#2ea043\\\",\\\"editorGutter.deletedBackground\\\":\\\"#f85149\\\",\\\"editorGutter.modifiedBackground\\\":\\\"#0078d4\\\",\\\"editorLineNumber.activeForeground\\\":\\\"#cccccc\\\",\\\"editorLineNumber.foreground\\\":\\\"#6e7681\\\",\\\"editorOverviewRuler.border\\\":\\\"#010409\\\",\\\"editorWidget.background\\\":\\\"#202020\\\",\\\"errorForeground\\\":\\\"#f85149\\\",\\\"focusBorder\\\":\\\"#0078d4\\\",\\\"foreground\\\":\\\"#cccccc\\\",\\\"icon.foreground\\\":\\\"#cccccc\\\",\\\"input.background\\\":\\\"#313131\\\",\\\"input.border\\\":\\\"#3c3c3c\\\",\\\"input.foreground\\\":\\\"#cccccc\\\",\\\"inputOption.activeBackground\\\":\\\"#2489db82\\\",\\\"inputOption.activeBorder\\\":\\\"#2488db\\\",\\\"keybindingLabel.foreground\\\":\\\"#cccccc\\\",\\\"notificationCenterHeader.background\\\":\\\"#1f1f1f\\\",\\\"notificationCenterHeader.foreground\\\":\\\"#cccccc\\\",\\\"notifications.background\\\":\\\"#1f1f1f\\\",\\\"notifications.border\\\":\\\"#2b2b2b\\\",\\\"notifications.foreground\\\":\\\"#cccccc\\\",\\\"panel.background\\\":\\\"#181818\\\",\\\"panel.border\\\":\\\"#2b2b2b\\\",\\\"panelInput.border\\\":\\\"#2b2b2b\\\",\\\"panelTitle.activeBorder\\\":\\\"#0078d4\\\",\\\"panelTitle.activeForeground\\\":\\\"#cccccc\\\",\\\"panelTitle.inactiveForeground\\\":\\\"#9d9d9d\\\",\\\"peekViewEditor.background\\\":\\\"#1f1f1f\\\",\\\"peekViewEditor.matchHighlightBackground\\\":\\\"#bb800966\\\",\\\"peekViewResult.background\\\":\\\"#1f1f1f\\\",\\\"peekViewResult.matchHighlightBackground\\\":\\\"#bb800966\\\",\\\"pickerGroup.border\\\":\\\"#3c3c3c\\\",\\\"progressBar.background\\\":\\\"#0078d4\\\",\\\"quickInput.background\\\":\\\"#222222\\\",\\\"quickInput.foreground\\\":\\\"#cccccc\\\",\\\"settings.dropdownBackground\\\":\\\"#313131\\\",\\\"settings.dropdownBorder\\\":\\\"#3c3c3c\\\",\\\"settings.headerForeground\\\":\\\"#ffffff\\\",\\\"settings.modifiedItemIndicator\\\":\\\"#bb800966\\\",\\\"sideBar.background\\\":\\\"#181818\\\",\\\"sideBar.border\\\":\\\"#2b2b2b\\\",\\\"sideBar.foreground\\\":\\\"#cccccc\\\",\\\"sideBarSectionHeader.foreground\\\":\\\"#cccccc\\\",\\\"statusBar.background\\\":\\\"#181818\\\",\\\"statusBar.border\\\":\\\"#2b2b2b\\\",\\\"statusBar.debuggingBackground\\\":\\\"#0078d4\\\",\\\"statusBar.debuggingForeground\\\":\\\"#ffffff\\\",\\\"statusBar.focusBorder\\\":\\\"#0078d4\\\",\\\"statusBar.foreground\\\":\\\"#cccccc\\\",\\\"statusBar.noFolderBackground\\\":\\\"#1f1f1f\\\",\\\"statusBarItem.focusBorder\\\":\\\"#0078d4\\\",\\\"statusBarItem.prominentBackground\\\":\\\"#6e768166\\\",\\\"tab.activeBackground\\\":\\\"#1f1f1f\\\",\\\"tab.activeBorder\\\":\\\"#1f1f1f\\\",\\\"tab.activeBorderTop\\\":\\\"#0078d4\\\",\\\"tab.activeForeground\\\":\\\"#ffffff\\\",\\\"tab.selectedBorderTop\\\":\\\"#6caddf\\\",\\\"tab.border\\\":\\\"#2b2b2b\\\",\\\"tab.hoverBackground\\\":\\\"#1f1f1f\\\",\\\"tab.inactiveBackground\\\":\\\"#181818\\\",\\\"tab.inactiveForeground\\\":\\\"#9d9d9d\\\",\\\"tab.unfocusedActiveBorder\\\":\\\"#1f1f1f\\\",\\\"tab.unfocusedActiveBorderTop\\\":\\\"#2b2b2b\\\",\\\"tab.unfocusedHoverBackground\\\":\\\"#1f1f1f\\\",\\\"terminal.foreground\\\":\\\"#cccccc\\\",\\\"terminal.tab.activeBorder\\\":\\\"#0078d4\\\",\\\"textBlockQuote.background\\\":\\\"#2b2b2b\\\",\\\"textBlockQuote.border\\\":\\\"#616161\\\",\\\"textCodeBlock.background\\\":\\\"#2b2b2b\\\",\\\"textLink.activeForeground\\\":\\\"#4daafc\\\",\\\"textLink.foreground\\\":\\\"#4daafc\\\",\\\"textPreformat.foreground\\\":\\\"#d0d0d0\\\",\\\"textPreformat.background\\\":\\\"#3c3c3c\\\",\\\"textSeparator.foreground\\\":\\\"#21262d\\\",\\\"titleBar.activeBackground\\\":\\\"#181818\\\",\\\"titleBar.activeForeground\\\":\\\"#cccccc\\\",\\\"titleBar.border\\\":\\\"#2b2b2b\\\",\\\"titleBar.inactiveBackground\\\":\\\"#1f1f1f\\\",\\\"titleBar.inactiveForeground\\\":\\\"#9d9d9d\\\",\\\"welcomePage.tileBackground\\\":\\\"#2b2b2b\\\",\\\"welcomePage.progress.foreground\\\":\\\"#0078d4\\\"},\\\"watch\\\":false}\",\"workbench.view.extensions.state.hidden\":\"[{\\\"id\\\":\\\"workbench.views.extensions.installed\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchOutdated\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.workspaceRecommendations\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.popular\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchRecentlyUpdated\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.otherRecommendations\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"extensions.recommendedList\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.enabled\\\",\\\"isHidden\\\":true},{\\\"id\\\":\\\"workbench.views.extensions.disabled\\\",\\\"isHidden\\\":true},{\\\"id\\\":\\\"workbench.views.extensions.marketplace\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchInstalled\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchEnabled\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchDisabled\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchBuiltin\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.searchWorkspaceUnsupported\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.builtinFeatureExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.builtinThemeExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.builtinProgrammingLanguageExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.untrustedUnsupportedExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.untrustedPartiallySupportedExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.virtualUnsupportedExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.virtualPartiallySupportedExtensions\\\",\\\"isHidden\\\":false},{\\\"id\\\":\\\"workbench.views.extensions.deprecatedExtensions\\\",\\\"isHidden\\\":false}]\",\"workbench.panel.alignment\":\"center\",\"terminal.hidden\":\"[{\\\"id\\\":\\\"terminal\\\",\\\"isHidden\\\":false}]\"}}"}
\ No newline at end of file
diff --git a/test/lsptoolshost/integrationTests/buildDiagnostics.integration.test.ts b/test/lsptoolshost/integrationTests/buildDiagnostics.integration.test.ts
index c94481110..cc915e429 100644
--- a/test/lsptoolshost/integrationTests/buildDiagnostics.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/buildDiagnostics.integration.test.ts
@@ -9,7 +9,7 @@ import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { AnalysisSetting, BuildDiagnosticsService } from '../../../src/lsptoolshost/buildDiagnosticsService';
import * as integrationHelpers from './integrationHelpers';
import path = require('path');
-describe(`Build and live diagnostics dedupe ${testAssetWorkspace.description}`, () => {
+describe(`Build and live diagnostics dedupe`, () => {
beforeAll(async () => {
await integrationHelpers.activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/classification.integration.test.ts b/test/lsptoolshost/integrationTests/classification.integration.test.ts
index 173cb48f5..eeb454deb 100644
--- a/test/lsptoolshost/integrationTests/classification.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/classification.integration.test.ts
@@ -9,7 +9,7 @@ import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { activateCSharpExtension, closeAllEditorsAsync, openFileInWorkspaceAsync } from './integrationHelpers';
import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
-describe(`[${testAssetWorkspace.description}] Classification Tests`, () => {
+describe(`Classification Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/codeactions.integration.test.ts b/test/lsptoolshost/integrationTests/codeactions.integration.test.ts
index 371b1732f..0c82b08ca 100644
--- a/test/lsptoolshost/integrationTests/codeactions.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/codeactions.integration.test.ts
@@ -14,7 +14,7 @@ import {
openFileInWorkspaceAsync,
} from './integrationHelpers';
-describe(`[${testAssetWorkspace.description}] Test Code Actions`, () => {
+describe(`Code Actions Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/codelens.integration.test.ts b/test/lsptoolshost/integrationTests/codelens.integration.test.ts
index 23689a13d..26435533f 100644
--- a/test/lsptoolshost/integrationTests/codelens.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/codelens.integration.test.ts
@@ -15,7 +15,7 @@ import {
openFileInWorkspaceAsync,
} from './integrationHelpers';
-describe(`[${testAssetWorkspace.description}] Test CodeLens`, () => {
+describe(`CodeLens Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/commandEnablement.integration.test.ts b/test/lsptoolshost/integrationTests/commandEnablement.integration.test.ts
index 7b85c4f21..167f59aba 100644
--- a/test/lsptoolshost/integrationTests/commandEnablement.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/commandEnablement.integration.test.ts
@@ -9,7 +9,7 @@ import { activateCSharpExtension } from './integrationHelpers';
import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { CommonCommands, OmniSharpCommands, RoslynCommands } from './expectedCommands';
-describe(`Command Enablement: ${testAssetWorkspace.description}`, () => {
+describe(`Command Enablement Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/completion.integration.test.ts b/test/lsptoolshost/integrationTests/completion.integration.test.ts
index 6ed3b93f2..fa3a15008 100644
--- a/test/lsptoolshost/integrationTests/completion.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/completion.integration.test.ts
@@ -9,7 +9,7 @@ import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } fr
import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { activateCSharpExtension, closeAllEditorsAsync, openFileInWorkspaceAsync } from './integrationHelpers';
-describe(`[${testAssetWorkspace.description}] Test Completion`, () => {
+describe(`Completion Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/documentDiagnostics.integration.test.ts b/test/lsptoolshost/integrationTests/documentDiagnostics.integration.test.ts
index 502a8c553..6c8549ac3 100644
--- a/test/lsptoolshost/integrationTests/documentDiagnostics.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/documentDiagnostics.integration.test.ts
@@ -7,13 +7,19 @@ import * as vscode from 'vscode';
import { describe, test, beforeAll, afterAll, expect, beforeEach, afterEach } from '@jest/globals';
import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { AnalysisSetting } from '../../../src/lsptoolshost/buildDiagnosticsService';
-import * as integrationHelpers from './integrationHelpers';
import path = require('path');
import { getCode, setBackgroundAnalysisScopes, waitForExpectedDiagnostics } from './diagnosticsHelpers';
-
-describe(`[${testAssetWorkspace.description}] Test diagnostics`, () => {
+import {
+ activateCSharpExtension,
+ closeAllEditorsAsync,
+ describeIfCSharp,
+ openFileInWorkspaceAsync,
+} from './integrationHelpers';
+
+// Restarting the server is required for these tests, but not supported with C# Dev Kit.
+describeIfCSharp(`Document Diagnostics Tests`, () => {
beforeAll(async () => {
- await integrationHelpers.activateCSharpExtension();
+ await activateCSharpExtension();
});
afterAll(async () => {
@@ -23,11 +29,11 @@ describe(`[${testAssetWorkspace.description}] Test diagnostics`, () => {
describe('Open document diagnostics', () => {
let file: vscode.Uri;
beforeEach(async () => {
- file = await integrationHelpers.openFileInWorkspaceAsync(path.join('src', 'app', 'diagnostics.cs'));
+ file = await openFileInWorkspaceAsync(path.join('src', 'app', 'diagnostics.cs'));
});
afterEach(async () => {
- await integrationHelpers.closeAllEditorsAsync();
+ await closeAllEditorsAsync();
});
test('Compiler and analyzer diagnostics reported for open file when set to OpenFiles', async () => {
diff --git a/test/lsptoolshost/integrationTests/documentSymbolProvider.integration.test.ts b/test/lsptoolshost/integrationTests/documentSymbolProvider.integration.test.ts
index 404eaf11c..9e489bed9 100644
--- a/test/lsptoolshost/integrationTests/documentSymbolProvider.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/documentSymbolProvider.integration.test.ts
@@ -9,7 +9,7 @@ import * as path from 'path';
import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { activateCSharpExtension, closeAllEditorsAsync, openFileInWorkspaceAsync } from './integrationHelpers';
-describe(`DocumentSymbolProvider: ${testAssetWorkspace.description}`, () => {
+describe(`Document Symbol Tests`, () => {
let fileUri: vscode.Uri;
beforeAll(async () => {
diff --git a/test/lsptoolshost/integrationTests/formatting.integration.test.ts b/test/lsptoolshost/integrationTests/formatting.integration.test.ts
index 654cdd48a..7e7f228ad 100644
--- a/test/lsptoolshost/integrationTests/formatting.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/formatting.integration.test.ts
@@ -15,7 +15,7 @@ import {
import { describe, beforeAll, beforeEach, afterAll, test, afterEach } from '@jest/globals';
import { formatDocumentAsync, formatOnTypeAsync, formatRangeAsync } from './formattingTestHelpers';
-describe(`[${testAssetWorkspace.description}] Formatting Tests`, () => {
+describe(`Formatting Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/formattingEditorConfig.integration.test.ts b/test/lsptoolshost/integrationTests/formattingEditorConfig.integration.test.ts
index 998b1268f..70945a9e6 100644
--- a/test/lsptoolshost/integrationTests/formattingEditorConfig.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/formattingEditorConfig.integration.test.ts
@@ -15,7 +15,7 @@ import {
import { describe, beforeAll, beforeEach, afterAll, test, afterEach } from '@jest/globals';
import { formatDocumentAsync, formatOnTypeAsync, formatRangeAsync } from './formattingTestHelpers';
-describe(`[${testAssetWorkspace.description}] Formatting With EditorConfig Tests`, () => {
+describe(`Formatting With EditorConfig Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/gotoDefinition.integration.test.ts b/test/lsptoolshost/integrationTests/gotoDefinition.integration.test.ts
index 348e714c9..0cf5fc6b2 100644
--- a/test/lsptoolshost/integrationTests/gotoDefinition.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/gotoDefinition.integration.test.ts
@@ -11,10 +11,12 @@ import {
closeAllEditorsAsync,
findRangeOfString,
openFileInWorkspaceAsync,
+ testIfCSharp,
+ testIfDevKit,
} from './integrationHelpers';
import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
-describe(`[${testAssetWorkspace.description}] Test Go To Definition`, () => {
+describe(`Go To Definition Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
@@ -61,7 +63,7 @@ describe(`[${testAssetWorkspace.description}] Test Go To Definition`, () => {
await navigate(requestPosition, definitionList, 'diagnostics.cs');
});
- test('Navigates to definition in decompiled source', async () => {
+ testIfCSharp('Navigates to definition in decompiled source', async () => {
await openFileInWorkspaceAsync(path.join('test', 'UnitTest1.cs'));
// Get definitions
@@ -84,7 +86,7 @@ describe(`[${testAssetWorkspace.description}] Test Go To Definition`, () => {
);
});
- test('Navigates from definition in decompiled source goes to decompiled source', async () => {
+ testIfCSharp('Navigates from definition in decompiled source goes to decompiled source', async () => {
await openFileInWorkspaceAsync(path.join('test', 'UnitTest1.cs'));
// Get definitions
@@ -209,6 +211,80 @@ describe(`[${testAssetWorkspace.description}] Test Go To Definition`, () => {
new vscode.Range(new vscode.Position(14, 25), new vscode.Position(14, 35))
);
});
+
+ testIfDevKit('Navigates to definition in source link', async () => {
+ await openFileInWorkspaceAsync(path.join('test', 'UnitTest1.cs'));
+
+ // Get definitions
+ const requestPosition = new vscode.Position(13, 9);
+ const definitionList = (
+ await vscode.commands.executeCommand(
+ 'vscode.executeDefinitionProvider',
+ vscode.window.activeTextEditor!.document.uri,
+ requestPosition
+ )
+ );
+ expect(definitionList.length).toEqual(1);
+ const definitionPath = definitionList[0].uri;
+ expect(definitionPath.fsPath).toContain('FactAttribute.cs');
+
+ // Navigate
+ await navigate(requestPosition, definitionList, 'FactAttribute.cs');
+
+ // File should not be decompiled and should come from the symbol cache
+ expect(vscode.window.activeTextEditor?.document.getText()).not.toContain(
+ '// Decompiled with ICSharpCode.Decompiler'
+ );
+ expect(vscode.window.activeTextEditor?.document.uri.path.toLowerCase()).toContain('symbolcache');
+ });
+
+ testIfDevKit('Navigates from definition in source link source goes to source link', async () => {
+ await openFileInWorkspaceAsync(path.join('test', 'UnitTest1.cs'));
+
+ // Get definitions
+ const requestPosition = new vscode.Position(13, 9);
+ const definitionList = (
+ await vscode.commands.executeCommand(
+ 'vscode.executeDefinitionProvider',
+ vscode.window.activeTextEditor!.document.uri,
+ requestPosition
+ )
+ );
+ expect(definitionList.length).toEqual(1);
+ const definitionPath = definitionList[0].uri;
+ expect(definitionPath.fsPath).toContain('FactAttribute.cs');
+
+ // Navigate
+ await navigate(requestPosition, definitionList, 'FactAttribute.cs');
+ // File should not be decompiled and should come from the symbol cache
+ expect(vscode.window.activeTextEditor?.document.getText()).not.toContain(
+ '// Decompiled with ICSharpCode.Decompiler'
+ );
+ expect(vscode.window.activeTextEditor?.document.uri.path.toLowerCase()).toContain('symbolcache');
+
+ // Get definitions from inside FactAttribute.cs
+ // Rather than hardcoding a location, we find the location by searching the document as different SDKs may have different versions of the source.
+ const rangeOfDefinition = findRangeOfString(vscode.window.activeTextEditor!, 'XunitTestCaseDiscoverer')[0];
+ const attributeUsageDefinition = (
+ await vscode.commands.executeCommand(
+ 'vscode.executeDefinitionProvider',
+ vscode.window.activeTextEditor!.document.uri,
+ rangeOfDefinition.start
+ )
+ );
+
+ expect(attributeUsageDefinition.length).toEqual(1);
+ const attributeDefinitionPath = attributeUsageDefinition[0].uri;
+ expect(attributeDefinitionPath.fsPath).toContain('XunitTestCaseDiscovererAttribute.cs');
+
+ // Navigate
+ await navigate(rangeOfDefinition.start, attributeUsageDefinition, 'XunitTestCaseDiscovererAttribute.cs');
+ // File should not be decompiled and should come from the symbol cache
+ expect(vscode.window.activeTextEditor?.document.getText()).not.toContain(
+ '// Decompiled with ICSharpCode.Decompiler'
+ );
+ expect(vscode.window.activeTextEditor?.document.uri.path.toLowerCase()).toContain('symbolcache');
+ });
});
async function navigate(
diff --git a/test/lsptoolshost/integrationTests/gotoImplementation.integration.test.ts b/test/lsptoolshost/integrationTests/gotoImplementation.integration.test.ts
index 51a3c4400..f077b290b 100644
--- a/test/lsptoolshost/integrationTests/gotoImplementation.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/gotoImplementation.integration.test.ts
@@ -14,7 +14,7 @@ import {
} from './integrationHelpers';
import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
-describe(`[${testAssetWorkspace.description}] Test Go To Implementation`, () => {
+describe(`Go To Implementation Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/hover.integration.test.ts b/test/lsptoolshost/integrationTests/hover.integration.test.ts
index 46bbe7fac..ff9a3a318 100644
--- a/test/lsptoolshost/integrationTests/hover.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/hover.integration.test.ts
@@ -10,7 +10,7 @@ import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { activateCSharpExtension, closeAllEditorsAsync, openFileInWorkspaceAsync } from './integrationHelpers';
import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
-describe(`[${testAssetWorkspace.description}] Hover Tests`, () => {
+describe(`Hover Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/integrationHelpers.ts b/test/lsptoolshost/integrationTests/integrationHelpers.ts
index 6bf5a5273..4513f8b4d 100644
--- a/test/lsptoolshost/integrationTests/integrationHelpers.ts
+++ b/test/lsptoolshost/integrationTests/integrationHelpers.ts
@@ -5,12 +5,13 @@
import * as vscode from 'vscode';
import * as path from 'path';
+import * as semver from 'semver';
import { CSharpExtensionExports } from '../../../src/csharpExtensionExports';
import { existsSync } from 'fs';
import { ServerState } from '../../../src/lsptoolshost/serverStateChange';
import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { EOL } from 'os';
-import { expect } from '@jest/globals';
+import { describe, expect, test } from '@jest/globals';
export async function activateCSharpExtension(): Promise {
const csharpExtension = vscode.extensions.getExtension('ms-dotnettools.csharp');
@@ -18,14 +19,29 @@ export async function activateCSharpExtension(): Promise {
throw new Error('Failed to find installation of ms-dotnettools.csharp');
}
- // Run a restore manually to make sure the project is up to date since we don't have automatic restore.
- await testAssetWorkspace.restoreLspToolsHostAsync();
-
- // If the extension is already active, we need to restart it to ensure we start with a clean server state.
- // For example, a previous test may have changed configs, deleted restored packages or made other changes that would put it in an invalid state.
let shouldRestart = false;
- if (csharpExtension.isActive) {
- shouldRestart = true;
+
+ const csDevKitExtension = vscode.extensions.getExtension('ms-dotnettools.csdevkit');
+ if (usingDevKit()) {
+ if (!csDevKitExtension) {
+ throw new Error('Failed to find installation of ms-dotnettools.csdevkit');
+ }
+
+ // Ensure C# Dev Kit has a minimum version.
+ const version = csDevKitExtension.packageJSON.version;
+ const minimumVersion = '1.10.18';
+ if (semver.lt(version, minimumVersion)) {
+ throw new Error(`C# Dev Kit version ${version} is below required minimum of ${minimumVersion}`);
+ }
+ } else {
+ // Run a restore manually to make sure the project is up to date since we don't have automatic restore.
+ await testAssetWorkspace.restoreLspToolsHostAsync();
+
+ // If the extension is already active, we need to restart it to ensure we start with a clean server state.
+ // For example, a previous test may have changed configs, deleted restored packages or made other changes that would put it in an invalid state.
+ if (csharpExtension.isActive) {
+ shouldRestart = true;
+ }
}
// Explicitly await the extension activation even if completed so that we capture any errors it threw during activation.
@@ -39,6 +55,10 @@ export async function activateCSharpExtension(): Promise {
}
}
+export function usingDevKit(): boolean {
+ return vscode.workspace.getConfiguration().get('dotnet.preferCSharpExtension') !== true;
+}
+
export async function openFileInWorkspaceAsync(relativeFilePath: string): Promise {
const root = vscode.workspace.workspaceFolders![0].uri.fsPath;
const filePath = path.join(root, relativeFilePath);
@@ -64,6 +84,10 @@ export async function revertActiveFile(): Promise {
}
export async function restartLanguageServer(): Promise {
+ if (usingDevKit()) {
+ // Restarting the server will cause us to lose all project information when using C# Dev Kit.
+ throw new Error('Cannot restart language server when using the C# Dev Kit');
+ }
const csharpExtension = vscode.extensions.getExtension('ms-dotnettools.csharp');
// Register to wait for initialization events and restart the server.
const waitForInitialProjectLoad = new Promise((resolve, _) => {
@@ -174,3 +198,16 @@ export async function expectText(document: vscode.TextDocument, expectedLines: s
const expectedText = expectedLines.join(EOL);
expect(document.getText()).toBe(expectedText);
}
+
+export const describeIfCSharp = describeIf(!usingDevKit());
+export const describeIfDevKit = describeIf(usingDevKit());
+export const testIfCSharp = testIf(!usingDevKit());
+export const testIfDevKit = testIf(usingDevKit());
+
+function describeIf(condition: boolean) {
+ return condition ? describe : describe.skip;
+}
+
+function testIf(condition: boolean) {
+ return condition ? test : test.skip;
+}
diff --git a/test/lsptoolshost/integrationTests/lspInlayHints.integration.test.ts b/test/lsptoolshost/integrationTests/lspInlayHints.integration.test.ts
index b3281667a..a85c1df20 100644
--- a/test/lsptoolshost/integrationTests/lspInlayHints.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/lspInlayHints.integration.test.ts
@@ -10,7 +10,7 @@ import testAssetWorkspace from './testAssets/testAssetWorkspace';
import * as integrationHelpers from './integrationHelpers';
import { InlayHint, InlayHintKind, Position } from 'vscode-languageserver-protocol';
-describe(`[${testAssetWorkspace.description}] Test LSP Inlay Hints `, () => {
+describe(`Inlay Hints Tests`, () => {
beforeAll(async () => {
const editorConfig = vscode.workspace.getConfiguration('editor');
await editorConfig.update('inlayHints.enabled', true);
diff --git a/test/lsptoolshost/integrationTests/onAutoInsert.integration.test.ts b/test/lsptoolshost/integrationTests/onAutoInsert.integration.test.ts
index 19eb9ecfa..8a91c10f8 100644
--- a/test/lsptoolshost/integrationTests/onAutoInsert.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/onAutoInsert.integration.test.ts
@@ -16,7 +16,7 @@ import {
} from './integrationHelpers';
import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
-describe(`[${testAssetWorkspace.description}] Test OnAutoInsert`, () => {
+describe(`OnAutoInsert Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/references.integration.test.ts b/test/lsptoolshost/integrationTests/references.integration.test.ts
index 7b9042e25..f17706c7e 100644
--- a/test/lsptoolshost/integrationTests/references.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/references.integration.test.ts
@@ -14,7 +14,7 @@ import {
} from './integrationHelpers';
import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
-describe(`[${testAssetWorkspace.description}] Test Find References`, () => {
+describe(`Find References Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/signatureHelp.integration.test.ts b/test/lsptoolshost/integrationTests/signatureHelp.integration.test.ts
index 6ac5f7aa0..92d0f4111 100644
--- a/test/lsptoolshost/integrationTests/signatureHelp.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/signatureHelp.integration.test.ts
@@ -9,7 +9,7 @@ import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { activateCSharpExtension, closeAllEditorsAsync, openFileInWorkspaceAsync } from './integrationHelpers';
import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
-describe(`[${testAssetWorkspace.description}] Signature Help Tests`, () => {
+describe(`Signature Help Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace
new file mode 100644
index 000000000..cb1af05bd
--- /dev/null
+++ b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace
@@ -0,0 +1,13 @@
+{
+ "folders": [
+ {
+ "path": ".."
+ }
+ ],
+ "settings": {
+ "dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln",
+ "dotnet.server.trace": "Trace",
+ "dotnet.server.useOmnisharp": false,
+ "dotnet.preferCSharpExtension": false,
+ }
+}
\ No newline at end of file
diff --git a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_lsp_slnWithCsproj.code-workspace b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_lsp_slnWithCsproj.code-workspace
deleted file mode 100644
index a2db107ff..000000000
--- a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_lsp_slnWithCsproj.code-workspace
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "folders": [
- {
- "path": ".."
- }
- ],
- "settings": {
- "omnisharp.path": "latest",
- "omnisharp.enableRoslynAnalyzers": true,
- "dotnet.server.useOmnisharp": true,
- "omnisharp.enableLspDriver": true,
- "dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln"
- }
-}
\ No newline at end of file
diff --git a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_slnWithCsproj.code-workspace b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_slnWithCsproj.code-workspace
deleted file mode 100644
index 02f5acaa6..000000000
--- a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_slnWithCsproj.code-workspace
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "folders": [
- {
- "path": ".."
- }
- ],
- "settings": {
- "omnisharp.path": "latest",
- "omnisharp.enableRoslynAnalyzers": true,
- "dotnet.server.useOmnisharp": true,
- "omnisharp.enableLspDriver": false,
- "dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln",
- }
-}
\ No newline at end of file
diff --git a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace
similarity index 84%
rename from test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace
rename to test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace
index cef8ba814..6da609d8b 100644
--- a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace
+++ b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace
@@ -8,6 +8,6 @@
"dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln",
"dotnet.server.trace": "Trace",
"dotnet.server.useOmnisharp": false,
- "omnisharp.enableLspDriver": false,
+ "dotnet.preferCSharpExtension": true,
}
}
\ No newline at end of file
diff --git a/test/lsptoolshost/integrationTests/testAssets/testAssets.ts b/test/lsptoolshost/integrationTests/testAssets/testAssets.ts
index 965204fca..8e9b8d405 100644
--- a/test/lsptoolshost/integrationTests/testAssets/testAssets.ts
+++ b/test/lsptoolshost/integrationTests/testAssets/testAssets.ts
@@ -59,7 +59,7 @@ export class TestAssetWorkspace {
try {
await cleanUpRoutine();
- } catch (error) {
+ } catch (_error) {
// Its possible that cleanup fails for locked files etc, for this reason retry is added.
await sleep();
await cleanUpRoutine();
diff --git a/test/lsptoolshost/integrationTests/unitTests.integration.test.ts b/test/lsptoolshost/integrationTests/unitTests.integration.test.ts
index 11e9fcd48..50d41afb6 100644
--- a/test/lsptoolshost/integrationTests/unitTests.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/unitTests.integration.test.ts
@@ -5,17 +5,18 @@
import * as vscode from 'vscode';
import * as path from 'path';
-import { describe, beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
+import { beforeAll, beforeEach, afterAll, test, expect, afterEach } from '@jest/globals';
import testAssetWorkspace from './testAssets/testAssetWorkspace';
import {
activateCSharpExtension,
closeAllEditorsAsync,
+ describeIfCSharp,
getCodeLensesAsync,
openFileInWorkspaceAsync,
} from './integrationHelpers';
import { TestProgress } from '../../../src/lsptoolshost/roslynProtocol';
-describe(`[${testAssetWorkspace.description}] Test Unit Testing`, () => {
+describeIfCSharp(`Unit Testing Tests`, () => {
beforeAll(async () => {
await activateCSharpExtension();
});
diff --git a/test/lsptoolshost/integrationTests/workspaceDiagnostics.integration.test.ts b/test/lsptoolshost/integrationTests/workspaceDiagnostics.integration.test.ts
index 47803daa4..234f87a4c 100644
--- a/test/lsptoolshost/integrationTests/workspaceDiagnostics.integration.test.ts
+++ b/test/lsptoolshost/integrationTests/workspaceDiagnostics.integration.test.ts
@@ -7,11 +7,13 @@ import * as vscode from 'vscode';
import { describe, test, expect, beforeAll, afterAll } from '@jest/globals';
import testAssetWorkspace from './testAssets/testAssetWorkspace';
import { AnalysisSetting } from '../../../src/lsptoolshost/buildDiagnosticsService';
-import * as integrationHelpers from './integrationHelpers';
import { getCode, setBackgroundAnalysisScopes, waitForExpectedDiagnostics } from './diagnosticsHelpers';
-describe(`[${testAssetWorkspace.description}] Test diagnostics`, () => {
+import { activateCSharpExtension, describeIfCSharp } from './integrationHelpers';
+
+// Restarting the server is required for these tests, but not supported with C# Dev Kit.
+describeIfCSharp(`Workspace Diagnostic Tests`, () => {
beforeAll(async () => {
- await integrationHelpers.activateCSharpExtension();
+ await activateCSharpExtension();
});
afterAll(async () => {
diff --git a/test/lsptoolshost/unitTests/packageNlsJson.test.ts b/test/lsptoolshost/unitTests/packageNlsJson.test.ts
index b4dd49fdc..dc3725ea6 100644
--- a/test/lsptoolshost/unitTests/packageNlsJson.test.ts
+++ b/test/lsptoolshost/unitTests/packageNlsJson.test.ts
@@ -21,7 +21,7 @@ describe('package.nls.json validation tests', () => {
for (const key of keysWithURLExamples) {
try {
expect(packageNLSJson[key]).toContain('\u200b');
- } catch (e) {
+ } catch (_) {
throw "Missing \\u200b in example urls, please run 'gulp fixLocURLs' and check in those changes.";
}
}
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/omnisharp_BasicRazorApp2_1.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/omnisharp_BasicRazorApp2_1.code-workspace
index 52264bf4f..2803e626d 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/omnisharp_BasicRazorApp2_1.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/omnisharp_BasicRazorApp2_1.code-workspace
@@ -6,6 +6,7 @@
],
"settings": {
"dotnet.server.useOmnisharp": true,
- "omnisharp.enableLspDriver": false
+ "omnisharp.enableLspDriver": false,
+ "dotnet.preferCSharpExtension": true,
}
}
\ No newline at end of file
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/omnisharp_lsp_BasicRazorApp2_1.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/omnisharp_lsp_BasicRazorApp2_1.code-workspace
index 93e63a168..91aed1b9b 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/omnisharp_lsp_BasicRazorApp2_1.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/omnisharp_lsp_BasicRazorApp2_1.code-workspace
@@ -6,6 +6,7 @@
],
"settings": {
"dotnet.server.useOmnisharp": true,
- "omnisharp.enableLspDriver": true
+ "omnisharp.enableLspDriver": true,
+ "dotnet.preferCSharpExtension": true,
}
}
\ No newline at end of file
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/singleCsproj/.vscode/omnisharp_lsp_singleCsproj.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/singleCsproj/.vscode/omnisharp_lsp_singleCsproj.code-workspace
index d2bbe1696..c8bcfca06 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/singleCsproj/.vscode/omnisharp_lsp_singleCsproj.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/singleCsproj/.vscode/omnisharp_lsp_singleCsproj.code-workspace
@@ -8,6 +8,7 @@
"omnisharp.path": "latest",
"omnisharp.enableRoslynAnalyzers": true,
"omnisharp.enableLspDriver": true,
- "dotnet.server.useOmnisharp": true
+ "dotnet.server.useOmnisharp": true,
+ "dotnet.preferCSharpExtension": true,
}
}
\ No newline at end of file
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/singleCsproj/.vscode/omnisharp_singleCsproj.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/singleCsproj/.vscode/omnisharp_singleCsproj.code-workspace
index 8bce15410..047b8152a 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/singleCsproj/.vscode/omnisharp_singleCsproj.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/singleCsproj/.vscode/omnisharp_singleCsproj.code-workspace
@@ -8,6 +8,7 @@
"omnisharp.path": "latest",
"omnisharp.enableRoslynAnalyzers": true,
"omnisharp.enableLspDriver": false,
- "dotnet.server.useOmnisharp": true
+ "dotnet.server.useOmnisharp": true,
+ "dotnet.preferCSharpExtension": true,
}
}
\ No newline at end of file
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnFilterWithCsproj/.vscode/omnisharp_lsp_slnFilterWithCsproj.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnFilterWithCsproj/.vscode/omnisharp_lsp_slnFilterWithCsproj.code-workspace
index 3b81724d7..804fdce25 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnFilterWithCsproj/.vscode/omnisharp_lsp_slnFilterWithCsproj.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnFilterWithCsproj/.vscode/omnisharp_lsp_slnFilterWithCsproj.code-workspace
@@ -10,5 +10,6 @@
"omnisharp.enableRoslynAnalyzers": true,
"dotnet.server.useOmnisharp": true,
"omnisharp.enableLspDriver": true,
+ "dotnet.preferCSharpExtension": true,
}
}
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnFilterWithCsproj/.vscode/omnisharp_slnFilterWithCsproj.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnFilterWithCsproj/.vscode/omnisharp_slnFilterWithCsproj.code-workspace
index 2b4d5a258..33ee62602 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnFilterWithCsproj/.vscode/omnisharp_slnFilterWithCsproj.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnFilterWithCsproj/.vscode/omnisharp_slnFilterWithCsproj.code-workspace
@@ -9,6 +9,7 @@
"omnisharp.path": "latest",
"omnisharp.enableRoslynAnalyzers": true,
"dotnet.server.useOmnisharp": true,
- "omnisharp.enableLspDriver": false
+ "omnisharp.enableLspDriver": false,
+ "dotnet.preferCSharpExtension": true,
}
}
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace
index cef8ba814..46ef8b6ed 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace
@@ -8,6 +8,7 @@
"dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln",
"dotnet.server.trace": "Trace",
"dotnet.server.useOmnisharp": false,
- "omnisharp.enableLspDriver": false,
+ "omnisharp.enableLspDriver": false,
+ "dotnet.preferCSharpExtension": true,
}
}
\ No newline at end of file
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_lsp_slnWithCsproj.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_lsp_slnWithCsproj.code-workspace
index a2db107ff..bd81a9ff7 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_lsp_slnWithCsproj.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_lsp_slnWithCsproj.code-workspace
@@ -9,6 +9,7 @@
"omnisharp.enableRoslynAnalyzers": true,
"dotnet.server.useOmnisharp": true,
"omnisharp.enableLspDriver": true,
- "dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln"
+ "dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln",
+ "dotnet.preferCSharpExtension": true,
}
}
\ No newline at end of file
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_slnWithCsproj.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_slnWithCsproj.code-workspace
index 02f5acaa6..3fa872aa9 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_slnWithCsproj.code-workspace
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/omnisharp_slnWithCsproj.code-workspace
@@ -10,5 +10,6 @@
"dotnet.server.useOmnisharp": true,
"omnisharp.enableLspDriver": false,
"dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln",
+ "dotnet.preferCSharpExtension": true,
}
}
\ No newline at end of file
diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithGenerator/.vscode/settings.json b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithGenerator/.vscode/settings.json
index 16163b0cf..5ad5ec910 100644
--- a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithGenerator/.vscode/settings.json
+++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithGenerator/.vscode/settings.json
@@ -1,3 +1,4 @@
{
- "dotnet.server.useOmnisharp": true
+ "dotnet.server.useOmnisharp": true,
+ "dotnet.preferCSharpExtension": true,
}
\ No newline at end of file
diff --git a/test/omnisharp/omnisharpIntegrationTests/typeDefinitionProvider.test.ts b/test/omnisharp/omnisharpIntegrationTests/typeDefinitionProvider.test.ts
index 3b4bb74dd..f0b450560 100644
--- a/test/omnisharp/omnisharpIntegrationTests/typeDefinitionProvider.test.ts
+++ b/test/omnisharp/omnisharpIntegrationTests/typeDefinitionProvider.test.ts
@@ -68,9 +68,9 @@ describeIfNotRazorOrGenerator(`${OmniSharpDefinitionProvider.name}: ${testAssetW
)
);
expect(definitionList.length).toEqual(2);
- expect(definitionList[0]).toBeDefined;
+ expect(definitionList[0]).toBeDefined();
expect(definitionList[0].uri.path).toContain('typeDefinition.cs');
- expect(definitionList[1]).toBeDefined;
+ expect(definitionList[1]).toBeDefined();
expect(definitionList[1].uri.path).toContain('typeDefinition.cs');
});
diff --git a/test/omnisharp/omnisharpUnitTests/logging/dotnetTestLoggerObserver.test.ts b/test/omnisharp/omnisharpUnitTests/logging/dotnetTestLoggerObserver.test.ts
index dc01fc6bc..4de7ae08c 100644
--- a/test/omnisharp/omnisharpUnitTests/logging/dotnetTestLoggerObserver.test.ts
+++ b/test/omnisharp/omnisharpUnitTests/logging/dotnetTestLoggerObserver.test.ts
@@ -63,7 +63,7 @@ describe(`${DotNetTestLoggerObserver.name}`, () => {
[new DotNetTestRunInContextStart('foo', 1, 2), new DotNetTestDebugInContextStart('foo', 1, 2)].forEach(
(event: BaseEvent) => {
test(`${event.constructor.name}: File name and line/column are logged`, () => {
- expect(appendedMessage).toBeFalsy;
+ expect(appendedMessage).toBeFalsy();
observer.post(event);
expect(appendedMessage).toContain('foo');
expect(appendedMessage).toContain('2');
diff --git a/test/omnisharp/omnisharpUnitTests/packages/fileDownloader.test.ts b/test/omnisharp/omnisharpUnitTests/packages/fileDownloader.test.ts
index 73719d77e..15c4102d9 100644
--- a/test/omnisharp/omnisharpUnitTests/packages/fileDownloader.test.ts
+++ b/test/omnisharp/omnisharpUnitTests/packages/fileDownloader.test.ts
@@ -135,7 +135,7 @@ describe('FileDownloader', () => {
];
try {
await DownloadFile(fileDescription, eventStream, networkSettingsProvider, getURL(errorUrlPath));
- } catch (error) {
+ } catch (_) {
expect(eventBus.getEvents()).toStrictEqual(eventsSequence);
}
});
diff --git a/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/lsp_tools_host_BasicRazorApp2_1.code-workspace b/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/BasicRazorApp2_1.code-workspace
similarity index 76%
rename from test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/lsp_tools_host_BasicRazorApp2_1.code-workspace
rename to test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/BasicRazorApp2_1.code-workspace
index 18b2ef247..805d62e7e 100644
--- a/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/lsp_tools_host_BasicRazorApp2_1.code-workspace
+++ b/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/BasicRazorApp2_1.code-workspace
@@ -9,6 +9,7 @@
"dotnet.server.trace": "Trace",
"dotnet.server.useOmnisharp": false,
"omnisharp.enableLspDriver": false,
- "razor.server.trace": "Trace"
+ "razor.server.trace": "Trace",
+ "dotnet.preferCSharpExtension": true,
}
}
diff --git a/test/vscodeLauncher.ts b/test/vscodeLauncher.ts
index 1b51df03a..13e6798aa 100644
--- a/test/vscodeLauncher.ts
+++ b/test/vscodeLauncher.ts
@@ -8,91 +8,85 @@ import * as path from 'path';
import { downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath, runTests } from '@vscode/test-electron';
import { execChildProcess } from '../src/common';
-function getSln(workspacePath: string): string | undefined {
- if (workspacePath.endsWith('slnWithGenerator')) {
- return 'slnWithGenerator.sln';
- }
- return undefined;
-}
-
-async function main() {
- try {
- const vscodeExecutablePath = await downloadAndUnzipVSCode('stable');
- const [cli, ...args] = resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
-
- console.log('Display: ' + process.env.DISPLAY);
-
- const fullArgs = [...args, '--install-extension', 'ms-dotnettools.vscode-dotnet-runtime'];
-
- // Since we're using shell execute, spaces in the CLI path will get interpeted as args
- // Therefore we wrap the CLI path in quotes as on MacOS the path can contain spaces.
- const cliWrapped = `"${cli}"`;
- console.log(`${cliWrapped} ${fullArgs}`);
-
- const result = cp.spawnSync(cliWrapped, fullArgs, {
- encoding: 'utf-8',
- stdio: 'inherit',
- // Workaround as described in https://github.com/nodejs/node/issues/52554
- shell: true,
- });
- if (result.error || result.status !== 0) {
- throw new Error(`Failed to install the runtime extension: ${JSON.stringify(result)}`);
- }
-
- // The folder containing the Extension Manifest package.json
- // Passed to `--extensionDevelopmentPath`
- const extensionDevelopmentPath = process.env.CODE_EXTENSIONS_PATH;
- if (!extensionDevelopmentPath) {
- throw new Error('Environment variable CODE_EXTENSIONS_PATH is empty');
- }
-
- // The path to the extension test runner script
- // Passed to --extensionTestsPath
- const extensionTestsPath = process.env.EXTENSIONS_TESTS_PATH;
-
- if (!extensionTestsPath) {
- console.error('Empty extension tests path');
- process.exit(-1);
+export async function prepareVSCodeAndExecuteTests(
+ extensionDevelopmentPath: string,
+ extensionTestsPath: string,
+ workspacePath: string,
+ userDataDir: string,
+ env: NodeJS.ProcessEnv
+): Promise {
+ const vscodeExecutablePath = await downloadAndUnzipVSCode('stable');
+ const [cli, ...args] = resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath);
+
+ console.log('Display: ' + env.DISPLAY);
+
+ // Different test runs may want to have Dev Kit be active or in-active.
+ // Rather than having to uninstall Dev Kit between different test runs, we use workspace settings
+ // to control which extensions are active - and we always install Dev Kit.
+ const extensionsToInstall = [
+ 'ms-dotnettools.vscode-dotnet-runtime',
+ 'ms-dotnettools.csharp',
+ 'ms-dotnettools.csdevkit',
+ ];
+
+ await installExtensions(extensionsToInstall, cli, args);
+
+ // The folder containing the Extension Manifest package.json
+ // Passed to `--extensionDevelopmentPath`
+ env.CODE_EXTENSIONS_PATH = extensionDevelopmentPath;
+
+ console.log(`workspace path = '${workspacePath}'`);
+
+ const sln = getSln(workspacePath);
+ if (sln) {
+ // Run a build before the tests, to ensure that source generators are set up correctly
+ if (!process.env.DOTNET_ROOT) {
+ throw new Error('Environment variable DOTNET_ROOT is not set');
}
- // The integration tests expect that the workspace to run the
- // tests against is set in an environment variable.
- const workspacePath = process.env.CODE_TESTS_WORKSPACE;
+ const dotnetPath = path.join(process.env.DOTNET_ROOT, 'dotnet');
+ await execChildProcess(`${dotnetPath} build ${sln}`, workspacePath, process.env);
+ }
- if (!workspacePath) {
- console.error(`Empty workspace path`);
- process.exit(-1);
- }
+ // Download VS Code, unzip it and run the integration test
+ const exitCode = await runTests({
+ vscodeExecutablePath: vscodeExecutablePath,
+ extensionDevelopmentPath: extensionDevelopmentPath,
+ extensionTestsPath: extensionTestsPath,
+ // Launch with info logging as anything else is way too verbose and will hide test results.
+ launchArgs: [workspacePath, '-n', '--log', 'info', '--user-data-dir', userDataDir],
+ extensionTestsEnv: env,
+ });
+
+ return exitCode;
+}
- console.log(`workspace path = '${workspacePath}'`);
+async function installExtensions(extensionIds: string[], vscodeCli: string, vscodeArgs: string[]): Promise {
+ for (const extensionId of extensionIds) {
+ vscodeArgs.push('--install-extension', extensionId);
+ }
- const sln = getSln(workspacePath);
- if (sln) {
- // Run a build before the tests, to ensure that source generators are set up correctly
- if (!process.env.DOTNET_ROOT) {
- throw new Error('Environment variable DOTNET_ROOT is not set');
- }
+ // Since we're using shell execute, spaces in the CLI path will get interpeted as args
+ // Therefore we wrap the CLI path in quotes as on MacOS the path can contain spaces.
+ const cliWrapped = `"${vscodeCli}"`;
+ console.log(`${cliWrapped} ${vscodeArgs}`);
+
+ const result = cp.spawnSync(cliWrapped, vscodeArgs, {
+ encoding: 'utf-8',
+ stdio: 'inherit',
+ // Workaround as described in https://github.com/nodejs/node/issues/52554
+ shell: true,
+ });
+ if (result.error || result.status !== 0) {
+ throw new Error(`Failed to install the runtime extension: ${JSON.stringify(result)}`);
+ }
- const dotnetPath = path.join(process.env.DOTNET_ROOT, 'dotnet');
- await execChildProcess(`${dotnetPath} build ${sln}`, workspacePath, process.env);
- }
+ console.log();
+}
- // Download VS Code, unzip it and run the integration test
- const exitCode = await runTests({
- vscodeExecutablePath: vscodeExecutablePath,
- extensionDevelopmentPath: extensionDevelopmentPath,
- extensionTestsPath: extensionTestsPath,
- // Launch with info logging as anything else is way too verbose and will hide test results.
- launchArgs: [workspacePath, '-n', '--log', 'info'],
- extensionTestsEnv: process.env,
- });
-
- process.exit(exitCode);
- } catch (err) {
- console.error(err);
- console.error('Failed to run tests');
- process.exit(1);
+function getSln(workspacePath: string): string | undefined {
+ if (workspacePath.endsWith('slnWithGenerator')) {
+ return 'slnWithGenerator.sln';
}
+ return undefined;
}
-
-main();