Migrate to ESLint (#1944)
* get eslint running but its failing a lot of checks
* Fix the linting after migration
* Fix many errors
* 65 errors to go
* fix almost every lint issue
* clean lint
* Remove references to tslint
* dont install eslint as it is already here
* install eslint
* update eslint
* dont empty cache because eslint is failing to register the types that exist
* try to help eslint find the files for type defs
* Set typescript resolver
* Fix imports
* Add some import plugin but still cant import vscode correctly
* install eslint globally
* skip npm installl
* add imports
* try to fix the import issue
* build before hand so the types are picked up -_____-
* Revert "build before hand so the types are picked up -_____-"
This reverts commit e5381b42df
.
* rollback to eslint 8 but still run build
This commit is contained in:
Родитель
63cbaf19a7
Коммит
e9c440e1e8
|
@ -0,0 +1,193 @@
|
|||
module.exports = {
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es6": true
|
||||
},
|
||||
"extends": [
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
||||
"prettier"
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"project": "tsconfig.eslint.json",
|
||||
"sourceType": "module"
|
||||
},
|
||||
"plugins": [
|
||||
"eslint-plugin-jsdoc",
|
||||
"eslint-plugin-prefer-arrow",
|
||||
"@typescript-eslint",
|
||||
"@typescript-eslint/tslint",
|
||||
],
|
||||
"root": true,
|
||||
"rules": {
|
||||
"@typescript-eslint/adjacent-overload-signatures": "error",
|
||||
"@typescript-eslint/array-type": "off",
|
||||
"@typescript-eslint/ban-types": [
|
||||
"error",
|
||||
{
|
||||
"types": {
|
||||
"Object": {
|
||||
"message": "Avoid using the `Object` type. Did you mean `object`?"
|
||||
},
|
||||
"Function": {
|
||||
"message": "Avoid using the `Function` type. Prefer a specific function type, like `() => void`."
|
||||
},
|
||||
"Boolean": {
|
||||
"message": "Avoid using the `Boolean` type. Did you mean `boolean`?"
|
||||
},
|
||||
"Number": {
|
||||
"message": "Avoid using the `Number` type. Did you mean `number`?"
|
||||
},
|
||||
"String": {
|
||||
"message": "Avoid using the `String` type. Did you mean `string`?"
|
||||
},
|
||||
"Symbol": {
|
||||
"message": "Avoid using the `Symbol` type. Did you mean `symbol`?"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/consistent-type-assertions": "error",
|
||||
"@typescript-eslint/dot-notation": "error",
|
||||
"@typescript-eslint/explicit-function-return-type": "off",
|
||||
"@typescript-eslint/explicit-module-boundary-types": "off",
|
||||
"@typescript-eslint/no-var-requires": "off",
|
||||
"@typescript-eslint/only-throw-error": "off",
|
||||
"@typescript-eslint/no-empty-function": "off",
|
||||
"@typescript-eslint/naming-convention": [
|
||||
"off",
|
||||
{
|
||||
"selector": "variable",
|
||||
"format": [
|
||||
"camelCase",
|
||||
"UPPER_CASE"
|
||||
],
|
||||
"leadingUnderscore": "forbid",
|
||||
"trailingUnderscore": "forbid"
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/no-empty-interface": "error",
|
||||
"@typescript-eslint/no-unsafe-return": "warn",
|
||||
"@typescript-eslint/no-unsafe-call": "warn",
|
||||
"@typescript-eslint/no-explicit-any": "error",
|
||||
"@typescript-eslint/prefer-promise-reject-errors": "warn",
|
||||
"@typescript-eslint/no-inferrable-types": "error",
|
||||
"@typescript-eslint/no-misused-new": "error",
|
||||
"@typescript-eslint/no-misused-promises": "warn",
|
||||
"@typescript-eslint/no-namespace": "off",
|
||||
"@typescript-eslint/no-parameter-properties": "off",
|
||||
"@typescript-eslint/no-shadow": [
|
||||
"error",
|
||||
{
|
||||
"hoist": "all"
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/no-unused-expressions": "error",
|
||||
"@typescript-eslint/restrict-template-expressions": [
|
||||
"error",
|
||||
{
|
||||
"allowNumber": true,
|
||||
"allowBoolean": true,
|
||||
"allowAny": true,
|
||||
"allowArray": true
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/no-use-before-define": "off",
|
||||
"@typescript-eslint/prefer-for-of": "error",
|
||||
"@typescript-eslint/no-unused-vars": "off",
|
||||
"@typescript-eslint/prefer-function-type": "error",
|
||||
"@typescript-eslint/prefer-namespace-keyword": "error",
|
||||
"@typescript-eslint/ban-types": "off",
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
"@typescript-eslint/no-require-imports": "off",
|
||||
"@typescript-eslint/no-unsafe-argument": "off",
|
||||
"@typescript-eslint/no-unsafe-assignment": "off",
|
||||
"@typescript-eslint/no-unnecessary-type-assertion": "off",
|
||||
"@typescript-eslint/quotes": "off",
|
||||
"@typescript-eslint/triple-slash-reference": [
|
||||
"error",
|
||||
{
|
||||
"path": "always",
|
||||
"types": "prefer-import",
|
||||
"lib": "always"
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/typedef": "off",
|
||||
"@typescript-eslint/unified-signatures": "error",
|
||||
"arrow-parens": [
|
||||
"off",
|
||||
"always"
|
||||
],
|
||||
"complexity": "off",
|
||||
"constructor-super": "error",
|
||||
"dot-notation": "off",
|
||||
"eqeqeq": [
|
||||
"error",
|
||||
"smart"
|
||||
],
|
||||
"guard-for-in": "error",
|
||||
"id-denylist": "error",
|
||||
"id-match": "error",
|
||||
"jsdoc/check-alignment": "error",
|
||||
"jsdoc/check-indentation": "error",
|
||||
"jsdoc/newline-after-description": "off",
|
||||
"max-classes-per-file": "off",
|
||||
"max-len": [
|
||||
"error",
|
||||
{
|
||||
"code": 300
|
||||
}
|
||||
],
|
||||
"new-parens": "error",
|
||||
"no-bitwise": "error",
|
||||
"no-caller": "error",
|
||||
"no-cond-assign": "error",
|
||||
"no-console": "off",
|
||||
"no-debugger": "error",
|
||||
"no-empty": "off",
|
||||
"no-empty-function": "off",
|
||||
"no-eval": "error",
|
||||
"no-fallthrough": "off",
|
||||
"no-invalid-this": "off",
|
||||
"no-new-wrappers": "error",
|
||||
"no-return-await": "error",
|
||||
"no-shadow": "off",
|
||||
"no-throw-literal": "error",
|
||||
"no-trailing-spaces": "error",
|
||||
"no-undef-init": "error",
|
||||
"no-underscore-dangle": "error",
|
||||
"no-unsafe-finally": "error",
|
||||
"no-unused-expressions": "off",
|
||||
"no-unused-labels": "error",
|
||||
"no-use-before-define": "off",
|
||||
"no-var": "error",
|
||||
"object-shorthand": "error",
|
||||
"one-var": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"prefer-arrow/prefer-arrow-functions": "off",
|
||||
"prefer-const": "error",
|
||||
"prefer-template": "error",
|
||||
"quotes": "off",
|
||||
"no-underscore-dangle": "off",
|
||||
"radix": "error",
|
||||
"use-isnan": "error",
|
||||
"valid-typeof": "off",
|
||||
"@typescript-eslint/tslint/config": [
|
||||
"error",
|
||||
{
|
||||
"rules": {
|
||||
"file-header": [
|
||||
true,
|
||||
"------"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"settings": {
|
||||
"typescript": {}
|
||||
}
|
||||
};
|
|
@ -29,6 +29,7 @@ project.lock.json
|
|||
*.*sdf
|
||||
*.ipch
|
||||
*.js
|
||||
!.eslintrc.js
|
||||
*.d.ts
|
||||
*.js.map
|
||||
.build/
|
||||
|
|
|
@ -15,5 +15,14 @@
|
|||
"REGTYPE",
|
||||
"Republisher"
|
||||
],
|
||||
"azure-pipelines.1ESPipelineTemplatesSchemaFile": true
|
||||
"azure-pipelines.1ESPipelineTemplatesSchemaFile": true,
|
||||
"eslint.options": {
|
||||
"configFile": ".eslintrc.js"
|
||||
},
|
||||
"eslint.workingDirectories": [
|
||||
"./vscode-dotnet-runtime-library",
|
||||
"./vscode-dotnet-runtime-extension",
|
||||
"./vscode-dotnet-sdk-extension",
|
||||
"./sample"
|
||||
]
|
||||
}
|
|
@ -4,7 +4,6 @@
|
|||
node_modules/**
|
||||
dist/test/**
|
||||
src/**
|
||||
tslint.json
|
||||
*.vsix
|
||||
packages/
|
||||
msbuild/**
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
14
package.json
14
package.json
|
@ -11,14 +11,26 @@
|
|||
"author": "Microsoft Corporation",
|
||||
"scripts": {
|
||||
"compile-all": "build.cmd",
|
||||
"lint": "tslint -c tslint.json 'vscode-dotnet-runtime-library/src/**/*.ts' 'vscode-dotnet-runtime-extension/src/**/*.ts' 'vscode-dotnet-sdk-extension/src/**/*.ts'"
|
||||
"lint": "eslint -c .eslintrc.js --ext=.ts vscode-dotnet-runtime-library/src/**/*.ts vscode-dotnet-runtime-extension/src/**/*.ts --ignore-pattern \"**/test/\" --fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"@typescript-eslint/eslint-plugin-tslint": "^7.0.2",
|
||||
"@vscode/vsce": "^2.26.1",
|
||||
"eslint": "^8.0.0",
|
||||
"eslint-import-resolver-typescript": "^3.6.3",
|
||||
"eslint-plugin-import": "^2.30.0",
|
||||
"eslint-plugin-jsdoc": "^50.2.2",
|
||||
"eslint-plugin-prefer-arrow": "^1.2.3",
|
||||
"tslint": "^6.1.3",
|
||||
"typescript": "^5.5.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/source-map-support": "^0.5.6",
|
||||
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
||||
"@typescript-eslint/parser": "^8.0.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-import-resolver-node": "^0.3.9",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"rimraf": "3.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,17 +2,17 @@ parameters:
|
|||
pool: ''
|
||||
|
||||
jobs:
|
||||
- job: TSLint
|
||||
- job: ESLint
|
||||
pool:
|
||||
${{ if eq(parameters.useOneEngineeringPool, 'true') }}:
|
||||
${{ parameters.pool }}
|
||||
${{ else }}:
|
||||
vmImage: ${{ parameters.pool.vmImage }}
|
||||
displayName: '🧶 TSLint'
|
||||
displayName: '🧶 ESLint'
|
||||
steps:
|
||||
- template: install-node.yaml
|
||||
- script: build.cmd
|
||||
- bash: |
|
||||
npm install --cache /temp/empty-cache
|
||||
npm install tslint --reg https://registry.npmjs.org/ --verbose
|
||||
npm install eslint@^8.57.0 @typescript-eslint/parser@^8.0.0 @typescript-eslint/eslint-plugin@^8.0.0 --reg https://registry.npmjs.org/ --save-dev --verbose
|
||||
npm run lint
|
||||
displayName: 🧶 Run Lint
|
||||
|
|
|
@ -12,8 +12,8 @@ jobs:
|
|||
displayName: '📦 Package and Publish'
|
||||
dependsOn:
|
||||
- ${{ parameters.pool.os }}_Build
|
||||
- TSLint
|
||||
condition: and(succeeded(), eq('${{ parameters.useOneEngineeringPool }}', 'true'))
|
||||
- ESLint
|
||||
condition: succeeded()
|
||||
strategy:
|
||||
matrix:
|
||||
Runtime:
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
},
|
||||
"../vscode-dotnet-runtime-extension": {
|
||||
"name": "vscode-dotnet-runtime",
|
||||
"version": "2.1.3",
|
||||
"version": "2.1.6",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/chai-as-promised": "^7.1.8",
|
||||
|
@ -65,7 +65,7 @@
|
|||
"webpack-cli": "^4.9.1"
|
||||
},
|
||||
"engines": {
|
||||
"vscode": "^1.74.0"
|
||||
"vscode": "^1.81.1"
|
||||
}
|
||||
},
|
||||
"../vscode-dotnet-runtime-library": {
|
||||
|
|
6
test.ps1
6
test.ps1
|
@ -2,16 +2,16 @@ $result = 0
|
|||
$errorColor = "Red"
|
||||
$successColor = "Green"
|
||||
|
||||
if ($args[1] -eq '--tslint') {
|
||||
if ($args[1] -eq '--eslint') {
|
||||
npm run lint
|
||||
if ($LASTEXITCODE -ne 0)
|
||||
{
|
||||
Write-Host "`nTSLint Failed.`n" -ForegroundColor $errorColor
|
||||
Write-Host "`nESLint Failed.`n" -ForegroundColor $errorColor
|
||||
$result = 1
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "`nTSLint Succeeded.`n" -ForegroundColor $successColor
|
||||
Write-Host "`nESLint Succeeded.`n" -ForegroundColor $successColor
|
||||
}
|
||||
}
|
||||
|
||||
|
|
6
test.sh
6
test.sh
|
@ -3,18 +3,18 @@ RED=`tput setaf 1`
|
|||
GREEN=`tput setaf 2`
|
||||
NC=`tput sgr0`
|
||||
|
||||
if [ "$1" = "--tslint" ];
|
||||
if [ "$1" = "--eslint" ];
|
||||
then
|
||||
npm run lint
|
||||
if [ $? -ne 0 ];
|
||||
then
|
||||
echo ""
|
||||
echo "${RED}TSLint Failed.${NC}"
|
||||
echo "${RED}ESLint Failed.${NC}"
|
||||
echo ""
|
||||
RESULT=1
|
||||
else
|
||||
echo ""
|
||||
echo "${GREEN}TSLint Succeeded.${NC}"
|
||||
echo "${GREEN}ESLint Succeeded.${NC}"
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "es6",
|
||||
"outDir": "dist",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"skipLibCheck": true,
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"rootDir": "src",
|
||||
"strict": true /* enable all strict type-checking options */
|
||||
},
|
||||
"exclude": [
|
||||
"**/node_modules/**",
|
||||
"**/.vscode-test/**",
|
||||
"**/dist/**",
|
||||
]
|
||||
}
|
24
tslint.json
24
tslint.json
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"extends": "tslint:recommended",
|
||||
"rules": {
|
||||
"array-type": false,
|
||||
"arrow-parens": false,
|
||||
"file-header": [true, "------"],
|
||||
"interface-name": false,
|
||||
"no-console": false,
|
||||
"no-return-await": true,
|
||||
"no-inferrable-types": true,
|
||||
"no-namespace": false,
|
||||
"object-literal-sort-keys": false,
|
||||
"prefer-template": true,
|
||||
"quotemark": [true, "single"],
|
||||
"variable-name": [true, "check-format"],
|
||||
"max-classes-per-file": false,
|
||||
"max-line-length": {
|
||||
"options": {
|
||||
"limit": 200
|
||||
}
|
||||
},
|
||||
"no-any": true
|
||||
}
|
||||
}
|
|
@ -108,7 +108,7 @@
|
|||
"test": "npm run compile --silent && node ./dist/test/functional/runTest.js",
|
||||
"clean": "rimraf dist",
|
||||
"compile-all": "cd ../vscode-dotnet-runtime-library && npm install && npm run compile && cd ../vscode-dotnet-runtime-extension && npm install && npm run compile",
|
||||
"lint": "tslint -c ../tslint.json '../vscode-dotnet-runtime-library/src/**/*.ts' '../vscode-dotnet-runtime-extension/src/**/*.ts'",
|
||||
"lint": "eslint -c .eslintrc.js --ext=.ts vscode-dotnet-runtime-library/src/**/*.ts vscode-dotnet-runtime-extension/src/**/*.ts --ignore-pattern \"**/test/\" --fix",
|
||||
"webpack": "webpack --mode development"
|
||||
},
|
||||
"dependencies": {
|
||||
|
|
|
@ -69,9 +69,6 @@ import {
|
|||
import { dotnetCoreAcquisitionExtensionId } from './DotnetCoreAcquisitionId';
|
||||
import { InstallTrackerSingleton } from 'vscode-dotnet-runtime-library/dist/Acquisition/InstallTrackerSingleton';
|
||||
|
||||
// tslint:disable no-var-requires
|
||||
/* tslint:disable:only-arrow-functions */
|
||||
|
||||
const packageJson = require('../package.json');
|
||||
|
||||
// Extension constants
|
||||
|
@ -516,7 +513,7 @@ export function activate(vsCodeContext: vscode.ExtensionContext, extensionContex
|
|||
const reportIssueRegistration = vscode.commands.registerCommand(`${commandPrefix}.${commandKeys.reportIssue}`, async () => {
|
||||
const [url, issueBody] = formatIssueUrl(undefined, getIssueContext(existingPathConfigWorker)(AcquireErrorConfiguration.DisableErrorPopups, 'reportIssue'));
|
||||
await vscode.env.clipboard.writeText(issueBody);
|
||||
open(url);
|
||||
open(url).catch(() => {});
|
||||
});
|
||||
|
||||
// Helper Functions
|
||||
|
@ -579,12 +576,10 @@ export function activate(vsCodeContext: vscode.ExtensionContext, extensionContex
|
|||
supportPhase: resolvedSupportPhase }
|
||||
];
|
||||
}
|
||||
// tslint:disable no-any
|
||||
catch(error : any)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
// tslint:enable no-any
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -29,10 +29,7 @@ import {
|
|||
} from 'vscode-dotnet-runtime-library';
|
||||
import * as extension from '../../extension';
|
||||
import { warn } from 'console';
|
||||
import { json } from 'stream/consumers';
|
||||
import { InstallTrackerSingleton } from 'vscode-dotnet-runtime-library/dist/Acquisition/InstallTrackerSingleton';
|
||||
/* tslint:disable:no-any */
|
||||
/* tslint:disable:no-unsafe-finally */
|
||||
|
||||
const assert : any = chai.assert;
|
||||
const standardTimeoutTime = 40000;
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"extends": "../tslint.json"
|
||||
}
|
|
@ -62,7 +62,7 @@
|
|||
"@nodelib/fs.stat" "2.0.5"
|
||||
run-parallel "^1.1.9"
|
||||
|
||||
"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
|
||||
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
|
||||
version "2.0.5"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
|
||||
integrity sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=
|
||||
|
@ -75,7 +75,12 @@
|
|||
"@nodelib/fs.scandir" "2.1.5"
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@types/chai-as-promised@^7.1.8":
|
||||
"@tootallnate/once@1":
|
||||
version "1.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
||||
integrity sha1-zLkURTYBeaBOf+av94wA/8Hur4I=
|
||||
|
||||
"@types/chai-as-promised@^7.1.4", "@types/chai-as-promised@^7.1.8":
|
||||
version "7.1.8"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz"
|
||||
integrity sha1-8rPYLVPFlia11rvAh2Z8y0tnf+k=
|
||||
|
@ -116,12 +121,20 @@
|
|||
"@types/minimatch" "^5.1.2"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/glob@~7.2.0":
|
||||
version "7.2.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
|
||||
integrity sha1-vBtb86qS8lvV3TnzXFc2G9zlsus=
|
||||
dependencies:
|
||||
"@types/minimatch" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/json-schema@*", "@types/json-schema@^7.0.8":
|
||||
version "7.0.15"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/json-schema/-/json-schema-7.0.15.tgz"
|
||||
integrity sha1-WWoXRyM2lNUPatinhp/Lb1bPWEE=
|
||||
|
||||
"@types/minimatch@^5.1.2":
|
||||
"@types/minimatch@*", "@types/minimatch@^5.1.2":
|
||||
version "5.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/minimatch/-/minimatch-5.1.2.tgz"
|
||||
integrity sha1-B1CLRXl8uB7D8nMBGwVM0HVe3co=
|
||||
|
@ -146,6 +159,19 @@
|
|||
"@types/glob" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/semver@^7.3.9":
|
||||
version "7.5.8"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
|
||||
integrity sha1-gmioxXo+Sr0lwWXs02I323lIpV4=
|
||||
|
||||
"@types/shelljs@^0.8.9":
|
||||
version "0.8.15"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/shelljs/-/shelljs-0.8.15.tgz#22c6ab9dfe05cec57d8e6cb1a95ea173aee9fcac"
|
||||
integrity sha1-Isarnf4FzsV9jmyxqV6hc67p/Kw=
|
||||
dependencies:
|
||||
"@types/glob" "~7.2.0"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/source-map-support@^0.5.10":
|
||||
version "0.5.10"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/source-map-support/-/source-map-support-0.5.10.tgz"
|
||||
|
@ -163,6 +189,11 @@
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz"
|
||||
integrity sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=
|
||||
|
||||
"@vscode/sudo-prompt@^9.3.1":
|
||||
version "9.3.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/sudo-prompt/-/sudo-prompt-9.3.1.tgz#c562334bc6647733649fd42afc96c0eea8de3b65"
|
||||
integrity sha1-xWIzS8ZkdzNkn9Qq/JbA7qjeO2U=
|
||||
|
||||
"@vscode/test-electron@^2.3.9":
|
||||
version "2.4.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/test-electron/-/test-electron-2.4.1.tgz"
|
||||
|
@ -174,7 +205,7 @@
|
|||
ora "^7.0.1"
|
||||
semver "^7.6.2"
|
||||
|
||||
"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1":
|
||||
"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1":
|
||||
version "1.12.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ast/-/ast-1.12.1.tgz"
|
||||
integrity sha1-uxag6LGRT5efRYZMI4Gcw+Pw1Ls=
|
||||
|
@ -275,7 +306,7 @@
|
|||
"@webassemblyjs/wasm-gen" "1.12.1"
|
||||
"@webassemblyjs/wasm-parser" "1.12.1"
|
||||
|
||||
"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1":
|
||||
"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1":
|
||||
version "1.12.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz"
|
||||
integrity sha1-xHrLkObwgzkeP6YdETZQ7qHpWTc=
|
||||
|
@ -327,11 +358,18 @@ acorn-import-attributes@^1.9.5:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz"
|
||||
integrity sha1-frFVexugXvGLXtDsZ1kb+rBGiO8=
|
||||
|
||||
acorn@^8, acorn@^8.7.1, acorn@^8.8.2:
|
||||
acorn@^8.7.1, acorn@^8.8.2:
|
||||
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=
|
||||
|
||||
agent-base@6:
|
||||
version "6.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
|
||||
integrity sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=
|
||||
dependencies:
|
||||
debug "4"
|
||||
|
||||
agent-base@^7.0.2, agent-base@^7.1.0:
|
||||
version "7.1.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/agent-base/-/agent-base-7.1.1.tgz"
|
||||
|
@ -344,7 +382,7 @@ ajv-keywords@^3.5.2:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
|
||||
integrity sha1-MfKdpatuANHC0yms97WSlhTVAU0=
|
||||
|
||||
ajv@^6.12.5, ajv@^6.9.1:
|
||||
ajv@^6.12.5:
|
||||
version "6.12.6"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv/-/ajv-6.12.6.tgz"
|
||||
integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=
|
||||
|
@ -404,7 +442,7 @@ asynckit@^0.4.0:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/asynckit/-/asynckit-0.4.0.tgz"
|
||||
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
||||
|
||||
axios-cache-interceptor@^1.0.1:
|
||||
axios-cache-interceptor@^1.0.1, axios-cache-interceptor@^1.5.3:
|
||||
version "1.5.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/axios-cache-interceptor/-/axios-cache-interceptor-1.5.3.tgz"
|
||||
integrity sha1-IIP8aKrLkVJA437ct5K0/tY1QL4=
|
||||
|
@ -421,7 +459,7 @@ axios-retry@^3.4.0:
|
|||
"@babel/runtime" "^7.15.4"
|
||||
is-retry-allowed "^2.2.0"
|
||||
|
||||
axios@^1, axios@^1.7.4:
|
||||
axios@^1.7.4:
|
||||
version "1.7.4"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/axios/-/axios-1.7.4.tgz"
|
||||
integrity sha1-TI3tG0NoPI3TYpc8OT8+3iQFKqI=
|
||||
|
@ -440,11 +478,24 @@ base64-js@^1.3.1:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/base64-js/-/base64-js-1.5.1.tgz"
|
||||
integrity sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=
|
||||
|
||||
big-integer@^1.6.17:
|
||||
version "1.6.52"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85"
|
||||
integrity sha1-YKiH8wR2FKjhv/5dcXNJCpfcjIU=
|
||||
|
||||
binary-extensions@^2.0.0:
|
||||
version "2.3.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/binary-extensions/-/binary-extensions-2.3.0.tgz"
|
||||
integrity sha1-9uFKl4WNMnJSIAJC1Mz+UixEVSI=
|
||||
|
||||
binary@~0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
|
||||
integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=
|
||||
dependencies:
|
||||
buffers "~0.1.1"
|
||||
chainsaw "~0.1.0"
|
||||
|
||||
bl@^5.0.0:
|
||||
version "5.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bl/-/bl-5.1.0.tgz"
|
||||
|
@ -459,6 +510,11 @@ bluebird@^3.4.7, bluebird@^3.7.2:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bluebird/-/bluebird-3.7.2.tgz"
|
||||
integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28=
|
||||
|
||||
bluebird@~3.4.1:
|
||||
version "3.4.7"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3"
|
||||
integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.11"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz"
|
||||
|
@ -486,7 +542,7 @@ browser-stdout@1.3.1:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/browser-stdout/-/browser-stdout-1.3.1.tgz"
|
||||
integrity sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=
|
||||
|
||||
browserslist@^4.21.10, "browserslist@>= 4.21.0":
|
||||
browserslist@^4.21.10:
|
||||
version "4.23.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/browserslist/-/browserslist-4.23.3.tgz"
|
||||
integrity sha1-3rsCnTyT68l/+8jZy7A0A+InyAA=
|
||||
|
@ -501,6 +557,11 @@ buffer-from@^1.0.0:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz"
|
||||
integrity sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=
|
||||
|
||||
buffer-indexof-polyfill@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c"
|
||||
integrity sha1-0nMhNcWZnGSyd/z5savjSYJUcpw=
|
||||
|
||||
buffer@^6.0.3:
|
||||
version "6.0.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer/-/buffer-6.0.3.tgz"
|
||||
|
@ -509,6 +570,11 @@ buffer@^6.0.3:
|
|||
base64-js "^1.3.1"
|
||||
ieee754 "^1.2.1"
|
||||
|
||||
buffers@~0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
|
||||
integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s=
|
||||
|
||||
cache-parser@1.2.5:
|
||||
version "1.2.5"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cache-parser/-/cache-parser-1.2.5.tgz"
|
||||
|
@ -524,6 +590,13 @@ caniuse-lite@^1.0.30001646:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz"
|
||||
integrity sha1-Ut5ZUp6LArGu3Kr1wF2eI8DCgTg=
|
||||
|
||||
chai-as-promised@^7.1.1:
|
||||
version "7.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chai-as-promised/-/chai-as-promised-7.1.2.tgz#70cd73b74afd519754161386421fb71832c6d041"
|
||||
integrity sha1-cM1zt0r9UZdUFhOGQh+3GDLG0EE=
|
||||
dependencies:
|
||||
check-error "^1.0.2"
|
||||
|
||||
chai@4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chai/-/chai-4.3.4.tgz"
|
||||
|
@ -536,6 +609,13 @@ chai@4.3.4:
|
|||
pathval "^1.1.1"
|
||||
type-detect "^4.0.5"
|
||||
|
||||
chainsaw@~0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
|
||||
integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=
|
||||
dependencies:
|
||||
traverse ">=0.3.0 <0.4"
|
||||
|
||||
chalk@^4.1.0:
|
||||
version "4.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chalk/-/chalk-4.1.2.tgz"
|
||||
|
@ -645,6 +725,14 @@ concat-map@0.0.1:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/concat-map/-/concat-map-0.0.1.tgz"
|
||||
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||
|
||||
config-chain@^1.1.11:
|
||||
version "1.1.13"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"
|
||||
integrity sha1-+tB5Wqamza/57Rto6d/5Q3LCMvQ=
|
||||
dependencies:
|
||||
ini "^1.3.4"
|
||||
proto-list "~1.2.1"
|
||||
|
||||
copy-webpack-plugin@^9.0.1:
|
||||
version "9.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz"
|
||||
|
@ -671,7 +759,7 @@ cross-spawn@^7.0.3:
|
|||
shebang-command "^2.0.0"
|
||||
which "^2.0.1"
|
||||
|
||||
debug@^4.3.4, debug@4:
|
||||
debug@4, debug@^4.3.4:
|
||||
version "4.3.6"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.6.tgz"
|
||||
integrity sha1-KrLDj7r/6/iqlf3+bYhDjHoTxSs=
|
||||
|
@ -719,6 +807,13 @@ dir-glob@^3.0.1:
|
|||
dependencies:
|
||||
path-type "^4.0.0"
|
||||
|
||||
duplexer2@~0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
|
||||
integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
|
||||
dependencies:
|
||||
readable-stream "^2.0.2"
|
||||
|
||||
eastasianwidth@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
|
||||
|
@ -752,6 +847,11 @@ envinfo@^7.7.3:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/envinfo/-/envinfo-7.13.0.tgz"
|
||||
integrity sha1-gfu4Hl2jXXToFJQa6rfDJaYG+zE=
|
||||
|
||||
eol@^0.9.1:
|
||||
version "0.9.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd"
|
||||
integrity sha1-9wGRL1BAdL41xhF6XEreSc1Ues0=
|
||||
|
||||
err-code@^1.0.0:
|
||||
version "1.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/err-code/-/err-code-1.1.2.tgz"
|
||||
|
@ -873,14 +973,6 @@ fill-range@^7.1.1:
|
|||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
find-up@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-4.1.0.tgz"
|
||||
integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=
|
||||
dependencies:
|
||||
locate-path "^5.0.0"
|
||||
path-exists "^4.0.0"
|
||||
|
||||
find-up@5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-5.0.0.tgz"
|
||||
|
@ -889,6 +981,14 @@ find-up@5.0.0:
|
|||
locate-path "^6.0.0"
|
||||
path-exists "^4.0.0"
|
||||
|
||||
find-up@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-4.1.0.tgz"
|
||||
integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=
|
||||
dependencies:
|
||||
locate-path "^5.0.0"
|
||||
path-exists "^4.0.0"
|
||||
|
||||
flat@^5.0.2:
|
||||
version "5.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flat/-/flat-5.0.2.tgz"
|
||||
|
@ -913,6 +1013,21 @@ fs.realpath@^1.0.0:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz"
|
||||
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||
|
||||
fsevents@^2.3.3, fsevents@~2.3.2:
|
||||
version "2.3.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
|
||||
integrity sha1-ysZAd4XQNnWipeGlMFxpezR9kNY=
|
||||
|
||||
fstream@^1.0.12:
|
||||
version "1.0.12"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
|
||||
integrity sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
inherits "~2.0.0"
|
||||
mkdirp ">=0.5 0"
|
||||
rimraf "2"
|
||||
|
||||
function-bind@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/function-bind/-/function-bind-1.1.2.tgz"
|
||||
|
@ -928,7 +1043,14 @@ get-func-name@^2.0.0, get-func-name@^2.0.2:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-func-name/-/get-func-name-2.0.2.tgz"
|
||||
integrity sha1-DXzyDNE/2oCGaf+oj0/8ejlD/EE=
|
||||
|
||||
glob-parent@^5.1.2:
|
||||
get-proxy-settings@^0.1.13:
|
||||
version "0.1.13"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-proxy-settings/-/get-proxy-settings-0.1.13.tgz#ca4b79bc63a178c907f754a6c3e0f6a54ed1becb"
|
||||
integrity sha1-ykt5vGOheMkH91Smw+D2pU7Rvss=
|
||||
dependencies:
|
||||
npm-conf "~1.1.3"
|
||||
|
||||
glob-parent@^5.1.2, glob-parent@~5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
integrity sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=
|
||||
|
@ -942,30 +1064,11 @@ glob-parent@^6.0.1:
|
|||
dependencies:
|
||||
is-glob "^4.0.3"
|
||||
|
||||
glob-parent@~5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
integrity sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=
|
||||
dependencies:
|
||||
is-glob "^4.0.1"
|
||||
|
||||
glob-to-regexp@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
|
||||
integrity sha1-x1KXCHyFG5pXi9IX3VmpL1n+VG4=
|
||||
|
||||
glob@^7.0.0, glob@^7.1.3, glob@^7.2.0:
|
||||
version "7.2.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.3.tgz"
|
||||
integrity sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.1.1"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@7.2.0:
|
||||
version "7.2.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.0.tgz"
|
||||
|
@ -978,6 +1081,18 @@ glob@7.2.0:
|
|||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@^7.0.0, glob@^7.1.3, glob@^7.2.0:
|
||||
version "7.2.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.3.tgz"
|
||||
integrity sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.1.1"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
globby@^11.0.3:
|
||||
version "11.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globby/-/globby-11.1.0.tgz"
|
||||
|
@ -990,7 +1105,7 @@ globby@^11.0.3:
|
|||
merge2 "^1.4.1"
|
||||
slash "^3.0.0"
|
||||
|
||||
graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4:
|
||||
graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4:
|
||||
version "4.2.11"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz"
|
||||
integrity sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=
|
||||
|
@ -1017,6 +1132,15 @@ he@1.2.0:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/he/-/he-1.2.0.tgz"
|
||||
integrity sha1-hK5l+n6vsWX922FWauFLrwVmTw8=
|
||||
|
||||
http-proxy-agent@^4.0.1:
|
||||
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#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
|
||||
integrity sha1-ioyO9/WTLM+VPClsqCkblap0qjo=
|
||||
dependencies:
|
||||
"@tootallnate/once" "1"
|
||||
agent-base "6"
|
||||
debug "4"
|
||||
|
||||
http-proxy-agent@^7.0.2:
|
||||
version "7.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz"
|
||||
|
@ -1025,7 +1149,15 @@ http-proxy-agent@^7.0.2:
|
|||
agent-base "^7.1.0"
|
||||
debug "^4.3.4"
|
||||
|
||||
https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.5:
|
||||
https-proxy-agent@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
|
||||
integrity sha1-xZ7yJKBP6LdU89sAY6Jeow0ABdY=
|
||||
dependencies:
|
||||
agent-base "6"
|
||||
debug "4"
|
||||
|
||||
https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.4, https-proxy-agent@^7.0.5:
|
||||
version "7.0.5"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz"
|
||||
integrity sha1-notQE4cymeEfq2/VSEBdotbGArI=
|
||||
|
@ -1064,11 +1196,16 @@ inflight@^1.0.4:
|
|||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2:
|
||||
inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3:
|
||||
version "2.0.4"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz"
|
||||
integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=
|
||||
|
||||
ini@^1.3.4:
|
||||
version "1.3.8"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
||||
integrity sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=
|
||||
|
||||
interpret@^1.0.0:
|
||||
version "1.4.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/interpret/-/interpret-1.4.0.tgz"
|
||||
|
@ -1222,6 +1359,11 @@ lie@~3.3.0:
|
|||
dependencies:
|
||||
immediate "~3.0.5"
|
||||
|
||||
listenercount@~1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937"
|
||||
integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=
|
||||
|
||||
loader-runner@^4.2.0:
|
||||
version "4.3.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/loader-runner/-/loader-runner-4.3.0.tgz"
|
||||
|
@ -1246,14 +1388,6 @@ lodash@^4.17.21:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash/-/lodash-4.17.21.tgz"
|
||||
integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=
|
||||
|
||||
log-symbols@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/log-symbols/-/log-symbols-5.1.0.tgz"
|
||||
integrity sha1-og47ml9T+sauuOK7IsB88sjxbZM=
|
||||
dependencies:
|
||||
chalk "^5.0.0"
|
||||
is-unicode-supported "^1.1.0"
|
||||
|
||||
log-symbols@4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/log-symbols/-/log-symbols-4.1.0.tgz"
|
||||
|
@ -1262,6 +1396,14 @@ log-symbols@4.1.0:
|
|||
chalk "^4.1.0"
|
||||
is-unicode-supported "^0.1.0"
|
||||
|
||||
log-symbols@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/log-symbols/-/log-symbols-5.1.0.tgz"
|
||||
integrity sha1-og47ml9T+sauuOK7IsB88sjxbZM=
|
||||
dependencies:
|
||||
chalk "^5.0.0"
|
||||
is-unicode-supported "^1.1.0"
|
||||
|
||||
merge-stream@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge-stream/-/merge-stream-2.0.0.tgz"
|
||||
|
@ -1297,14 +1439,14 @@ mimic-fn@^2.1.0:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mimic-fn/-/mimic-fn-2.1.0.tgz"
|
||||
integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=
|
||||
|
||||
minimatch@^3.0.3, minimatch@^3.1.1:
|
||||
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 sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=
|
||||
minimatch@4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-4.2.1.tgz"
|
||||
integrity sha1-QNnVEaRr3E5WPCLDCAzenA2CmbQ=
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimatch@^3.0.4:
|
||||
minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1:
|
||||
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 sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=
|
||||
|
@ -1318,12 +1460,17 @@ minimatch@^5.0.0:
|
|||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
minimatch@4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-4.2.1.tgz"
|
||||
integrity sha1-QNnVEaRr3E5WPCLDCAzenA2CmbQ=
|
||||
minimist@^1.2.6:
|
||||
version "1.2.8"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
||||
integrity sha1-waRk52kzAuCCoHXO4MBXdBrEdyw=
|
||||
|
||||
"mkdirp@>=0.5 0":
|
||||
version "0.5.6"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
|
||||
integrity sha1-fe8D0kMtyuS6HWEURcSDlgYiVfY=
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
minimist "^1.2.6"
|
||||
|
||||
mocha@^9.1.3:
|
||||
version "9.2.2"
|
||||
|
@ -1390,6 +1537,14 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/normalize-path/-/normalize-path-3.0.0.tgz"
|
||||
integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=
|
||||
|
||||
npm-conf@~1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
|
||||
integrity sha1-JWzEe9DiGMJZxOlVC/QTvCGSr/k=
|
||||
dependencies:
|
||||
config-chain "^1.1.11"
|
||||
pify "^3.0.0"
|
||||
|
||||
object-code@1.3.3:
|
||||
version "1.3.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object-code/-/object-code-1.3.3.tgz"
|
||||
|
@ -1511,6 +1666,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picomatch/-/picomatch-2.3.1.tgz"
|
||||
integrity sha1-O6ODNzNkbZ0+SZWUbBNlpn+wekI=
|
||||
|
||||
pify@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
|
||||
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
|
||||
|
||||
pkg-dir@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pkg-dir/-/pkg-dir-4.2.0.tgz"
|
||||
|
@ -1533,6 +1693,20 @@ proper-lockfile@^1.2.0:
|
|||
graceful-fs "^4.1.2"
|
||||
retry "^0.10.0"
|
||||
|
||||
proper-lockfile@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
|
||||
integrity sha1-yLneKvay8WAQZ/mOAaxmuqIjFB8=
|
||||
dependencies:
|
||||
graceful-fs "^4.2.4"
|
||||
retry "^0.12.0"
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
proto-list@~1.2.1:
|
||||
version "1.2.4"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
|
||||
integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
|
||||
|
||||
proxy-from-env@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
|
||||
|
@ -1555,16 +1729,7 @@ randombytes@^2.1.0:
|
|||
dependencies:
|
||||
safe-buffer "^5.1.0"
|
||||
|
||||
readable-stream@^3.4.0:
|
||||
version "3.6.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.2.tgz"
|
||||
integrity sha1-VqmzbqllwAxak+8x6xEaDxEFaWc=
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
string_decoder "^1.1.1"
|
||||
util-deprecate "^1.0.1"
|
||||
|
||||
readable-stream@~2.3.6:
|
||||
readable-stream@^2.0.2, readable-stream@~2.3.6:
|
||||
version "2.3.8"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-2.3.8.tgz"
|
||||
integrity sha1-kRJegEK7obmIf0k0X2J3Anzovps=
|
||||
|
@ -1577,6 +1742,15 @@ readable-stream@~2.3.6:
|
|||
string_decoder "~1.1.1"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
readable-stream@^3.4.0:
|
||||
version "3.6.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.2.tgz"
|
||||
integrity sha1-VqmzbqllwAxak+8x6xEaDxEFaWc=
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
string_decoder "^1.1.1"
|
||||
util-deprecate "^1.0.1"
|
||||
|
||||
readdirp@~3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readdirp/-/readdirp-3.6.0.tgz"
|
||||
|
@ -1642,12 +1816,24 @@ retry@^0.10.0:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/retry/-/retry-0.10.1.tgz"
|
||||
integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=
|
||||
|
||||
retry@^0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
|
||||
integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
|
||||
|
||||
reusify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/reusify/-/reusify-1.0.4.tgz"
|
||||
integrity sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=
|
||||
|
||||
rimraf@3.0.2:
|
||||
rimraf@2:
|
||||
version "2.7.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
|
||||
integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=
|
||||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
rimraf@3.0.2, rimraf@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rimraf/-/rimraf-3.0.2.tgz"
|
||||
integrity sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=
|
||||
|
@ -1661,6 +1847,11 @@ run-parallel@^1.1.9:
|
|||
dependencies:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
run-script-os@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/run-script-os/-/run-script-os-1.1.6.tgz#8b0177fb1b54c99a670f95c7fdc54f18b9c72347"
|
||||
integrity sha1-iwF3+xtUyZpnD5XH/cVPGLnHI0c=
|
||||
|
||||
safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
version "5.1.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz"
|
||||
|
@ -1680,13 +1871,6 @@ semver@^7.3.4, semver@^7.6.2:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.6.3.tgz"
|
||||
integrity sha1-mA97VVC8F1+03AlAMIVif56zMUM=
|
||||
|
||||
serialize-javascript@^6.0.0, serialize-javascript@^6.0.1:
|
||||
version "6.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/serialize-javascript/-/serialize-javascript-6.0.2.tgz"
|
||||
integrity sha1-3voeBVyDv21Z6oBdjahiJU62psI=
|
||||
dependencies:
|
||||
randombytes "^2.1.0"
|
||||
|
||||
serialize-javascript@6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/serialize-javascript/-/serialize-javascript-6.0.0.tgz"
|
||||
|
@ -1694,7 +1878,14 @@ serialize-javascript@6.0.0:
|
|||
dependencies:
|
||||
randombytes "^2.1.0"
|
||||
|
||||
setimmediate@^1.0.5:
|
||||
serialize-javascript@^6.0.0, serialize-javascript@^6.0.1:
|
||||
version "6.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/serialize-javascript/-/serialize-javascript-6.0.2.tgz"
|
||||
integrity sha1-3voeBVyDv21Z6oBdjahiJU62psI=
|
||||
dependencies:
|
||||
randombytes "^2.1.0"
|
||||
|
||||
setimmediate@^1.0.5, setimmediate@~1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/setimmediate/-/setimmediate-1.0.5.tgz"
|
||||
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
|
||||
|
@ -1762,23 +1953,7 @@ stdin-discarder@^0.1.0:
|
|||
dependencies:
|
||||
bl "^5.0.0"
|
||||
|
||||
string_decoder@^1.1.1, string_decoder@~1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz"
|
||||
integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=
|
||||
dependencies:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
string-width@^4.1.0:
|
||||
version "4.2.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/string-width/-/string-width-4.2.3.tgz"
|
||||
integrity sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=
|
||||
dependencies:
|
||||
emoji-regex "^8.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
string-width@^4.2.0:
|
||||
string-width@^4.1.0, string-width@^4.2.0:
|
||||
version "4.2.3"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/string-width/-/string-width-4.2.3.tgz"
|
||||
integrity sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=
|
||||
|
@ -1796,6 +1971,13 @@ string-width@^6.1.0:
|
|||
emoji-regex "^10.2.1"
|
||||
strip-ansi "^7.0.1"
|
||||
|
||||
string_decoder@^1.1.1, string_decoder@~1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz"
|
||||
integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=
|
||||
dependencies:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-ansi/-/strip-ansi-6.0.1.tgz"
|
||||
|
@ -1815,6 +1997,13 @@ strip-json-comments@3.1.1:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
|
||||
integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=
|
||||
|
||||
supports-color@8.1.1, supports-color@^8.0.0:
|
||||
version "8.1.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-8.1.1.tgz"
|
||||
integrity sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-color@^7.1.0:
|
||||
version "7.2.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-7.2.0.tgz"
|
||||
|
@ -1822,13 +2011,6 @@ supports-color@^7.1.0:
|
|||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-color@^8.0.0, supports-color@8.1.1:
|
||||
version "8.1.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-8.1.1.tgz"
|
||||
integrity sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-preserve-symlinks-flag@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
|
||||
|
@ -1867,6 +2049,11 @@ to-regex-range@^5.0.1:
|
|||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
"traverse@>=0.3.0 <0.4":
|
||||
version "0.3.9"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
|
||||
integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=
|
||||
|
||||
ts-loader@^9.5.1:
|
||||
version "9.5.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-loader/-/ts-loader-9.5.1.tgz"
|
||||
|
@ -1883,7 +2070,7 @@ type-detect@^4.0.0, type-detect@^4.0.5:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-detect/-/type-detect-4.1.0.tgz"
|
||||
integrity sha1-3rJFPo8I3K566YxiaxPd2wFVkGw=
|
||||
|
||||
typescript@*, typescript@^5.5.4:
|
||||
typescript@^5.5.4:
|
||||
version "5.5.4"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.5.4.tgz"
|
||||
integrity sha1-2YUtbIK60tLtpP10pXYqj1kJ6bo=
|
||||
|
@ -1900,6 +2087,22 @@ unit-compare@^1.0.1:
|
|||
dependencies:
|
||||
moment "^2.14.1"
|
||||
|
||||
unzipper@^0.10.11:
|
||||
version "0.10.14"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/unzipper/-/unzipper-0.10.14.tgz#d2b33c977714da0fbc0f82774ad35470a7c962b1"
|
||||
integrity sha1-0rM8l3cU2g+8D4J3StNUcKfJYrE=
|
||||
dependencies:
|
||||
big-integer "^1.6.17"
|
||||
binary "~0.3.0"
|
||||
bluebird "~3.4.1"
|
||||
buffer-indexof-polyfill "~1.0.0"
|
||||
duplexer2 "~0.1.4"
|
||||
fstream "^1.0.12"
|
||||
graceful-fs "^4.2.2"
|
||||
listenercount "~1.0.1"
|
||||
readable-stream "~2.3.6"
|
||||
setimmediate "~1.0.4"
|
||||
|
||||
update-browserslist-db@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz"
|
||||
|
@ -1922,7 +2125,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
|
|||
|
||||
"vscode-dotnet-runtime-library@file:../vscode-dotnet-runtime-library":
|
||||
version "1.0.0"
|
||||
resolved "file:../vscode-dotnet-runtime-library"
|
||||
dependencies:
|
||||
"@types/chai-as-promised" "^7.1.4"
|
||||
"@types/mocha" "^9.0.0"
|
||||
|
@ -1953,6 +2155,21 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
|
|||
optionalDependencies:
|
||||
fsevents "^2.3.3"
|
||||
|
||||
vscode-extension-telemetry@^0.4.3:
|
||||
version "0.4.5"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-extension-telemetry/-/vscode-extension-telemetry-0.4.5.tgz#1957d5a8b0cd6ad9a79d4f260fe037fbf98732bb"
|
||||
integrity sha1-GVfVqLDNatmnnU8mD+A3+/mHMrs=
|
||||
|
||||
vscode-test@^1.6.1:
|
||||
version "1.6.1"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-test/-/vscode-test-1.6.1.tgz#44254c67036de92b00fdd72f6ace5f1854e1a563"
|
||||
integrity sha1-RCVMZwNt6SsA/dcvas5fGFThpWM=
|
||||
dependencies:
|
||||
http-proxy-agent "^4.0.1"
|
||||
https-proxy-agent "^5.0.0"
|
||||
rimraf "^3.0.2"
|
||||
unzipper "^0.10.11"
|
||||
|
||||
watchpack@^2.4.1:
|
||||
version "2.4.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/watchpack/-/watchpack-2.4.2.tgz"
|
||||
|
@ -1961,7 +2178,7 @@ watchpack@^2.4.1:
|
|||
glob-to-regexp "^0.4.1"
|
||||
graceful-fs "^4.1.2"
|
||||
|
||||
webpack-cli@^4.9.1, webpack-cli@4.x.x:
|
||||
webpack-cli@^4.9.1:
|
||||
version "4.10.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-cli/-/webpack-cli-4.10.0.tgz"
|
||||
integrity sha1-N8HWnI2FIUxaZeWJN49TrsZNqzE=
|
||||
|
@ -2000,7 +2217,7 @@ webpack-sources@^3.2.3:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-sources/-/webpack-sources-3.2.3.tgz"
|
||||
integrity sha1-LU2quEUf1LJAzCcFX/agwszqDN4=
|
||||
|
||||
webpack@^5.0.0, webpack@^5.1.0, webpack@^5.88.2, "webpack@4.x.x || 5.x.x":
|
||||
webpack@^5.88.2:
|
||||
version "5.93.0"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.93.0.tgz"
|
||||
integrity sha1-LonscDVXm9+6l2DSbGOsXDRipeU=
|
||||
|
@ -2030,7 +2247,7 @@ webpack@^5.0.0, webpack@^5.1.0, webpack@^5.88.2, "webpack@4.x.x || 5.x.x":
|
|||
watchpack "^2.4.1"
|
||||
webpack-sources "^3.2.3"
|
||||
|
||||
which@^2.0.1, which@2.0.2:
|
||||
which@2.0.2, which@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-2.0.2.tgz"
|
||||
integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=
|
||||
|
@ -2066,7 +2283,7 @@ y18n@^5.0.5:
|
|||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/y18n/-/y18n-5.0.8.tgz"
|
||||
integrity sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=
|
||||
|
||||
yargs-parser@^20.2.2, yargs-parser@20.2.4:
|
||||
yargs-parser@20.2.4, yargs-parser@^20.2.2:
|
||||
version "20.2.4"
|
||||
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yargs-parser/-/yargs-parser-20.2.4.tgz"
|
||||
integrity sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=
|
||||
|
|
|
@ -6,6 +6,8 @@ import * as cp from 'child_process';
|
|||
import * as os from 'os';
|
||||
import path = require('path');
|
||||
|
||||
/* eslint-disable */ // When editing this file, please remove this and fix the linting concerns.
|
||||
|
||||
import {
|
||||
DotnetAcquisitionCompleted,
|
||||
DotnetAcquisitionInstallError,
|
||||
|
@ -13,10 +15,8 @@ import {
|
|||
DotnetAcquisitionScriptOutput,
|
||||
DotnetAcquisitionTimeoutError,
|
||||
DotnetAcquisitionUnexpectedError,
|
||||
OffilneDetectionLogicTriggered,
|
||||
DotnetOfflineFailure,
|
||||
EventBasedError,
|
||||
EventCancellationError,
|
||||
} from '../EventStream/EventStreamEvents';
|
||||
|
||||
import { timeoutConstants } from '../Utils/ErrorHandler'
|
||||
|
@ -33,8 +33,6 @@ import { IInstallScriptAcquisitionWorker } from './IInstallScriptAcquisitionWork
|
|||
import { DotnetInstall } from './DotnetInstall';
|
||||
import { DotnetInstallMode } from './DotnetInstallMode';
|
||||
import { WebRequestWorker } from '../Utils/WebRequestWorker';
|
||||
/* tslint:disable:no-any */
|
||||
/* tslint:disable:only-arrow-functions */
|
||||
|
||||
export class AcquisitionInvoker extends IAcquisitionInvoker {
|
||||
protected readonly scriptWorker: IInstallScriptAcquisitionWorker;
|
||||
|
@ -113,6 +111,8 @@ You will need to restart VS Code after these changes. If PowerShell is still not
|
|||
}
|
||||
catch (error : any)
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const newError = new EventBasedError('DotnetAcquisitionUnexpectedError', error?.message, error?.stack)
|
||||
this.eventStream.post(new DotnetAcquisitionUnexpectedError(newError, install));
|
||||
reject(newError);
|
||||
|
|
|
@ -59,8 +59,7 @@ import {
|
|||
GetDotnetInstallInfo,
|
||||
IsEquivalentInstallationFile,
|
||||
IsEquivalentInstallation
|
||||
} from './DotnetInstall';
|
||||
import { DotnetInstall } from './DotnetInstall';
|
||||
, DotnetInstall } from './DotnetInstall';
|
||||
import { InstallationGraveyard } from './InstallationGraveyard';
|
||||
import { InstallTrackerSingleton } from './InstallTrackerSingleton';
|
||||
import { DotnetInstallMode } from './DotnetInstallMode';
|
||||
|
@ -69,7 +68,6 @@ import { IExtensionState } from '../IExtensionState';
|
|||
import { CommandExecutor } from '../Utils/CommandExecutor';
|
||||
import { getInstallFromContext, getInstallIdCustomArchitecture } from '../Utils/InstallIdUtilities';
|
||||
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class DotnetCoreAcquisitionWorker implements IDotnetCoreAcquisitionWorker
|
||||
{
|
||||
|
@ -91,7 +89,7 @@ export class DotnetCoreAcquisitionWorker implements IDotnetCoreAcquisitionWorker
|
|||
public async uninstallAll(eventStream : IEventStream, storagePath : string, extensionState : IExtensionState): Promise<void>
|
||||
{
|
||||
eventStream.post(new DotnetUninstallAllStarted());
|
||||
await InstallTrackerSingleton.getInstance(eventStream, extensionState).clearPromises();
|
||||
InstallTrackerSingleton.getInstance(eventStream, extensionState).clearPromises();
|
||||
|
||||
this.removeFolderRecursively(eventStream, storagePath);
|
||||
|
||||
|
@ -286,7 +284,7 @@ To keep your .NET version up to date, please reconnect to the internet at your s
|
|||
|
||||
// Put this promise into the list so we can let other requests run at the same time
|
||||
// Allows us to return the end result of this current request for any following duplicates while we are still running.
|
||||
await InstallTrackerSingleton.getInstance(context.eventStream, context.extensionState).addPromise(install, acquisitionPromise);
|
||||
InstallTrackerSingleton.getInstance(context.eventStream, context.extensionState).addPromise(install, acquisitionPromise);
|
||||
return acquisitionPromise.then((res) => ({ dotnetPath: res }));
|
||||
}
|
||||
}
|
||||
|
@ -303,7 +301,7 @@ To keep your .NET version up to date, please reconnect to the internet at your s
|
|||
private async acquireLocalCore(context: IAcquisitionWorkerContext, mode: DotnetInstallMode, install : DotnetInstall, acquisitionInvoker : IAcquisitionInvoker): Promise<string>
|
||||
{
|
||||
const version = context.acquisitionContext.version!;
|
||||
this.checkForPartialInstalls(context, install);
|
||||
this.checkForPartialInstalls(context, install).catch(() => {});
|
||||
|
||||
let installedVersions = await InstallTrackerSingleton.getInstance(context.eventStream, context.extensionState).getExistingInstalls(true);
|
||||
const dotnetInstallDir = context.installDirectoryProvider.getInstallDir(install.installId);
|
||||
|
@ -366,7 +364,7 @@ To keep your .NET version up to date, please reconnect to the internet at your s
|
|||
{
|
||||
if(!(await this.sdkIsFound(context, context.acquisitionContext.version)))
|
||||
{
|
||||
InstallTrackerSingleton.getInstance(context.eventStream, context.extensionState).untrackInstalledVersion(context, install);
|
||||
await InstallTrackerSingleton.getInstance(context.eventStream, context.extensionState).untrackInstalledVersion(context, install);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -451,6 +449,8 @@ To keep your .NET version up to date, please reconnect to the internet at your s
|
|||
}
|
||||
else
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const newError = new EventBasedError('DotnetAcquisitionError', `.NET Acquisition Failed: ${error?.message ?? JSON.stringify(error)}`);
|
||||
return newError;
|
||||
}
|
||||
|
@ -460,7 +460,7 @@ To keep your .NET version up to date, please reconnect to the internet at your s
|
|||
{
|
||||
const installingVersion = await globalInstallerResolver.getFullySpecifiedVersion();
|
||||
context.eventStream.post(new DotnetGlobalVersionResolutionCompletionEvent(`The version we resolved that was requested is: ${installingVersion}.`));
|
||||
this.checkForPartialInstalls(context, install);
|
||||
this.checkForPartialInstalls(context, install).catch(() => {});
|
||||
|
||||
const installedVersions = await InstallTrackerSingleton.getInstance(context.eventStream, context.extensionState).getExistingInstalls(true);
|
||||
|
||||
|
@ -499,7 +499,7 @@ ${WinMacGlobalInstaller.InterpretExitCode(installerResult)}`), install);
|
|||
throw err;
|
||||
}
|
||||
|
||||
TelemetryUtilities.setDotnetSDKTelemetryToMatch(context.isExtensionTelemetryInitiallyEnabled, this.extensionContext, context, this.utilityContext);
|
||||
TelemetryUtilities.setDotnetSDKTelemetryToMatch(context.isExtensionTelemetryInitiallyEnabled, this.extensionContext, context, this.utilityContext).catch(() => {});
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -511,14 +511,19 @@ ${WinMacGlobalInstaller.InterpretExitCode(installerResult)}`), install);
|
|||
{
|
||||
const executor = new CommandExecutor(context, this.utilityContext);
|
||||
const result = await executor.execute(CommandExecutor.makeCommand('which', ['dotnet']));
|
||||
if(result.status === '0')
|
||||
if(result?.status === '0')
|
||||
{
|
||||
context.eventStream.post(new DotnetInstallationValidated(install));
|
||||
dotnetPath = result.stdout;
|
||||
}
|
||||
else
|
||||
{
|
||||
error.message += `Which dotnet returned ${result.stdout} and ${result.stderr}.`;
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
error.message ??= 'The .NET SDK installer did not install the SDK correctly.';
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
error.message += `Which dotnet returned ${result?.stdout} and ${result?.stderr}.`;
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
@ -562,7 +567,7 @@ ${WinMacGlobalInstaller.InterpretExitCode(installerResult)}`), install);
|
|||
{
|
||||
if(legacyInstall.dotnetInstall.installId.includes(version))
|
||||
{
|
||||
context.eventStream.post(new DotnetLegacyInstallRemovalRequestEvent(`Trying to remove legacy install: ${legacyInstall} of ${version}.`));
|
||||
context.eventStream.post(new DotnetLegacyInstallRemovalRequestEvent(`Trying to remove legacy install: ${JSON.stringify(legacyInstall)} of ${version}.`));
|
||||
await this.uninstallLocal(context, legacyInstall.dotnetInstall);
|
||||
}
|
||||
}
|
||||
|
@ -601,8 +606,8 @@ ${WinMacGlobalInstaller.InterpretExitCode(installerResult)}`), install);
|
|||
const dotnetInstallDir = context.installDirectoryProvider.getInstallDir(install.installId);
|
||||
const graveyard = new InstallationGraveyard(context);
|
||||
|
||||
graveyard.add(install, dotnetInstallDir);
|
||||
context.eventStream.post(new DotnetInstallGraveyardEvent(`Attempting to remove .NET at ${install} in path ${dotnetInstallDir}`));
|
||||
await graveyard.add(install, dotnetInstallDir);
|
||||
context.eventStream.post(new DotnetInstallGraveyardEvent(`Attempting to remove .NET at ${JSON.stringify(install)} in path ${dotnetInstallDir}`));
|
||||
|
||||
await InstallTrackerSingleton.getInstance(context.eventStream, context.extensionState).untrackInstalledVersion(context, install, force);
|
||||
// this is the only place where installed and installing could deal with pre existing installing id
|
||||
|
@ -613,7 +618,7 @@ ${WinMacGlobalInstaller.InterpretExitCode(installerResult)}`), install);
|
|||
context.eventStream.post(new DotnetUninstallStarted(`Attempting to remove .NET ${install.installId}.`));
|
||||
this.removeFolderRecursively(context.eventStream, dotnetInstallDir);
|
||||
context.eventStream.post(new DotnetUninstallCompleted(`Uninstalled .NET ${install.installId}.`));
|
||||
graveyard.remove(install);
|
||||
await graveyard.remove(install);
|
||||
context.eventStream.post(new DotnetInstallGraveyardEvent(`Success at uninstalling ${JSON.stringify(install)} in path ${dotnetInstallDir}`));
|
||||
}
|
||||
else
|
||||
|
@ -627,6 +632,7 @@ Other dependents remain.`));
|
|||
catch(error : any)
|
||||
{
|
||||
context.eventStream.post(new SuppressedAcquisitionError(error, `The attempt to uninstall .NET ${install.installId} failed - was .NET in use?`));
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
return error?.message ?? '1';
|
||||
}
|
||||
}
|
||||
|
@ -663,6 +669,7 @@ Other dependents remain.`));
|
|||
{
|
||||
await new CommandExecutor(context, this.utilityContext).endSudoProcessMaster(context.eventStream);
|
||||
context.eventStream.post(new SuppressedAcquisitionError(error, `The attempt to uninstall .NET ${install.installId} failed - was .NET in use?`));
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
return error?.message ?? '1';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
* Licensed to the .NET Foundation under one or more agreements.
|
||||
* The .NET Foundation licenses this file to you under the MIT license.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* eslint-disable */ // When editing this file, please remove this and fix the linting concerns.
|
||||
|
||||
import * as cp from 'child_process';
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
|
|
@ -11,7 +11,6 @@ import { DotnetDistroSupportStatus } from './LinuxVersionResolver';
|
|||
import { DotnetInstallMode } from './DotnetInstallMode';
|
||||
import { IDistroDotnetSDKProvider } from './IDistroDotnetSDKProvider';
|
||||
import { DotnetVersionResolutionError, EventBasedError } from '../EventStream/EventStreamEvents';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class GenericDistroSDKProvider extends IDistroDotnetSDKProvider
|
||||
{
|
||||
|
@ -165,6 +164,7 @@ export class GenericDistroSDKProvider extends IDistroDotnetSDKProvider
|
|||
return Promise.resolve(DotnetDistroSupportStatus.Unsupported);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if(this.myVersionDetails().hasOwnProperty(this.preinstallCommandKey))
|
||||
{
|
||||
// If preinstall commands exist ( to add the msft feed ) then it's a microsoft feed.
|
||||
|
@ -217,6 +217,6 @@ Please refer to https://learn.microsoft.com/en-us/dotnet/core/install/linux if y
|
|||
}
|
||||
|
||||
protected isPackageFoundInSearch(resultOfSearchCommand: any, searchCommandExitCode : string): boolean {
|
||||
return resultOfSearchCommand.trim() !== '' && searchCommandExitCode === '0';
|
||||
return (resultOfSearchCommand as string).trim() !== '' && searchCommandExitCode === '0';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,8 +24,8 @@ import { DotnetFeatureBandDoesNotExistError,
|
|||
import { FileUtilities } from '../Utils/FileUtilities';
|
||||
|
||||
import { IAcquisitionWorkerContext } from './IAcquisitionWorkerContext';
|
||||
/* tslint:disable:no-any */
|
||||
/* tslint:disable:only-arrow-functions */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
|
||||
|
||||
/**
|
||||
* @remarks
|
||||
|
@ -221,7 +221,9 @@ export class GlobalInstallerResolver {
|
|||
const sdks: any[] = [];
|
||||
const releasesKeyAlias = this.releasesSdksKey; // the forEach creates a separate 'this', so we introduce this copy to reduce ambiguity to the compiler
|
||||
|
||||
releases.forEach(function (release : any) {
|
||||
releases.forEach(function (release : any)
|
||||
{
|
||||
// eslint-disable-next-line prefer-spread
|
||||
sdks.push.apply(sdks, release[releasesKeyAlias]);
|
||||
});
|
||||
|
||||
|
@ -379,7 +381,7 @@ Your architecture: ${os.arch()}. Your OS: ${os.platform()}.`), getInstallFromCon
|
|||
}
|
||||
}
|
||||
|
||||
const availableBands = Array.from(new Set(sdks.map((x : any) => versionUtils.getFeatureBandFromVersion(x[this.releasesSdkVersionKey], this.context.eventStream, this.context))));
|
||||
const availableBands : string[] = Array.from(new Set(sdks.map((x : any) => versionUtils.getFeatureBandFromVersion(x[this.releasesSdkVersionKey], this.context.eventStream, this.context))));
|
||||
const err = new DotnetFeatureBandDoesNotExistError(new EventBasedError('DotnetFeatureBandDoesNotExistError',
|
||||
`The feature band '${band}' doesn't exist for the SDK major version '${version}'.
|
||||
Available feature bands for this SDK version are ${availableBands}.`), getInstallFromContext(this.context));
|
||||
|
|
|
@ -18,7 +18,7 @@ import { ICommandExecutor } from '../Utils/ICommandExecutor';
|
|||
import { IAcquisitionWorkerContext } from './IAcquisitionWorkerContext';
|
||||
import { IUtilityContext } from '../Utils/IUtilityContext';
|
||||
import { getInstallFromContext } from '../Utils/InstallIdUtilities';
|
||||
/* tslint:disable:no-any */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
|
||||
/**
|
||||
* This interface describes the functionality needed to manage the .NET SDK on a specific distro and version of Linux.
|
||||
|
@ -33,7 +33,7 @@ export abstract class IDistroDotnetSDKProvider {
|
|||
protected distroVersion : DistroVersionPair;
|
||||
protected versionResolver : VersionResolver;
|
||||
protected context : IAcquisitionWorkerContext;
|
||||
protected distroJson : any | null = null;
|
||||
protected distroJson : any = null;
|
||||
|
||||
protected preinstallCommandKey = 'preInstallCommands';
|
||||
protected installCommandKey = 'installCommand';
|
||||
|
@ -300,11 +300,13 @@ If you would like to contribute to the list of supported distros, please visit:
|
|||
|
||||
protected myDistroStrings(stringKey : string) : string
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
return this.distroJson[this.distroVersion.distro][stringKey];
|
||||
}
|
||||
|
||||
protected myDistroCommands(commandKey : string) : CommandExecutorCommand[]
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
return this.distroJson[this.distroVersion.distro][commandKey] as CommandExecutorCommand[];
|
||||
}
|
||||
|
||||
|
@ -312,8 +314,11 @@ If you would like to contribute to the list of supported distros, please visit:
|
|||
{
|
||||
const validCommands : string[] = [];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const baseCommands = (Object.values(this.distroJson[this.distroVersion.distro])
|
||||
.filter((x : any) => x && Array.isArray(x) && ((x[0] as CommandExecutorCommand).commandParts))).flat();
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
let preInstallCommands = this.myVersionDetails()[this.preinstallCommandKey] as CommandExecutorCommand[];
|
||||
if(!preInstallCommands)
|
||||
{
|
||||
|
@ -342,11 +347,16 @@ If you would like to contribute to the list of supported distros, please visit:
|
|||
protected allPackages() : string[]
|
||||
{
|
||||
let allPackages : string[] = [];
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const distroPackages = this.distroJson[this.distroVersion.distro][this.distroPackagesKey];
|
||||
for(const packageSet of distroPackages)
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
allPackages = allPackages.concat(packageSet[this.sdkKey]);
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
allPackages = allPackages.concat(packageSet[this.runtimeKey])
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
allPackages = allPackages.concat(packageSet[this.aspNetKey])
|
||||
}
|
||||
return allPackages;
|
||||
|
|
|
@ -48,7 +48,7 @@ export class InstallScriptAcquisitionWorker implements IInstallScriptAcquisition
|
|||
this.context.eventStream.post(new DotnetInstallScriptAcquisitionCompleted());
|
||||
return this.scriptFilePath;
|
||||
}
|
||||
catch (error)
|
||||
catch (error : any)
|
||||
{
|
||||
Debugging.log('An error occurred processing the install script.');
|
||||
this.context.eventStream.post(new DotnetInstallScriptAcquisitionError(error as Error, getInstallFromContext(this.context)));
|
||||
|
|
|
@ -39,8 +39,6 @@ import { DotnetCoreAcquisitionWorker } from './DotnetCoreAcquisitionWorker';
|
|||
import { IEventStream } from '../EventStream/EventStream';
|
||||
import { IExtensionState } from '../IExtensionState';
|
||||
import { IDotnetAcquireContext } from '..';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
|
||||
interface InProgressInstall
|
||||
{
|
||||
|
@ -91,6 +89,7 @@ export class InstallTrackerSingleton
|
|||
{
|
||||
if(alreadyHoldingLock)
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/await-thenable
|
||||
return await f(...(args));
|
||||
}
|
||||
else
|
||||
|
@ -99,6 +98,7 @@ export class InstallTrackerSingleton
|
|||
await lockfile.lock(lockPath, { retries: { retries: 10, minTimeout: 5, maxTimeout: 10000 } })
|
||||
.then(async (release) =>
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/await-thenable
|
||||
returnResult = await f(...(args));
|
||||
this.eventStream?.post(new DotnetLockReleasedEvent(`Lock about to be released.`, new Date().toISOString(), lockPath, lockPath));
|
||||
return release();
|
||||
|
@ -113,7 +113,13 @@ export class InstallTrackerSingleton
|
|||
catch(e : any)
|
||||
{
|
||||
// Either the lock could not be acquired or releasing it failed
|
||||
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
this.eventStream.post(new DotnetLockErrorEvent(e, e?.message ?? 'Unable to acquire lock to update installation state', new Date().toISOString(), lockPath, lockPath));
|
||||
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
throw new EventBasedError('DotnetLockErrorEvent', e?.message, e?.stack);
|
||||
}
|
||||
|
||||
|
@ -288,10 +294,8 @@ ${convertedInstalls.map(x => `${JSON.stringify(x.dotnetInstall)} owned by ${x.in
|
|||
{
|
||||
if(installRecord.length > 1)
|
||||
{
|
||||
/* tslint:disable:prefer-template */
|
||||
this.eventStream.post(new DuplicateInstallDetected(`The install
|
||||
${(install)} has a duplicated record ${installRecord.length} times in the extension state.
|
||||
${installRecord.map(x => x.installingExtensions.join(' ') + InstallToStrings(x.dotnetInstall)).join(' ') + '\n'}`));
|
||||
this.eventStream.post(new DuplicateInstallDetected(`The install ${(JSON.stringify(install))} has a duplicated record ${installRecord.length} times in the extension state.
|
||||
${installRecord.map(x => `${x.installingExtensions.join(' ')} ${JSON.stringify(InstallToStrings(x.dotnetInstall))}`)}\n`));
|
||||
}
|
||||
|
||||
const preExistingRecord = installRecord.at(0);
|
||||
|
@ -342,7 +346,7 @@ ${convertedInstalls.map(x => `${JSON.stringify(x.dotnetInstall)} owned by ${x.in
|
|||
// Did this extension already mark itself as having ownership of this install? If so, we can skip re-adding it.
|
||||
if(!(existingInstall?.installingExtensions.includes(context.acquisitionContext?.requestingExtensionId ?? null)))
|
||||
{
|
||||
this.eventStream.post(new SkipAddingInstallEvent(`Skipped adding ${install} to the state because it was already there with the same owner.`));
|
||||
this.eventStream.post(new SkipAddingInstallEvent(`Skipped adding ${JSON.stringify(install)} to the state because it was already there with the same owner.`));
|
||||
existingInstall!.installingExtensions.push(context.acquisitionContext?.requestingExtensionId ?? null);
|
||||
existingVersions[preExistingInstallIndex] = existingInstall!;
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
* The .NET Foundation licenses this file to you under the MIT license.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import { IAcquisitionWorkerContext } from './IAcquisitionWorkerContext';
|
||||
import { IsEquivalentInstallationFile } from './DotnetInstall';
|
||||
import { IsEquivalentInstallationFile , DotnetInstall } from './DotnetInstall';
|
||||
import { getAssumedInstallInfo } from '../Utils/InstallIdUtilities';
|
||||
import { DotnetInstall } from './DotnetInstall';
|
||||
|
||||
|
||||
interface LocalDotnetInstall
|
||||
{
|
||||
|
|
|
@ -40,8 +40,8 @@ export class LinuxGlobalInstaller extends IGlobalInstaller {
|
|||
await this.linuxSDKResolver.Initialize();
|
||||
|
||||
const dotnetFolder = await (await this.linuxSDKResolver.distroCall()).getDotnetVersionSupportStatus(specificSDKVersionInstalled, 'sdk') === DotnetDistroSupportStatus.Distro ?
|
||||
await (await this.linuxSDKResolver.distroCall()).getExpectedDotnetDistroFeedInstallationDirectory() :
|
||||
await (await this.linuxSDKResolver.distroCall()).getExpectedDotnetMicrosoftFeedInstallationDirectory();
|
||||
(await this.linuxSDKResolver.distroCall()).getExpectedDotnetDistroFeedInstallationDirectory() :
|
||||
(await this.linuxSDKResolver.distroCall()).getExpectedDotnetMicrosoftFeedInstallationDirectory();
|
||||
return dotnetFolder;
|
||||
}
|
||||
|
||||
|
|
|
@ -88,7 +88,9 @@ export class LinuxVersionResolver
|
|||
public baseUnsupportedDistroErrorMessage = 'We are unable to detect the distro or version of your machine';
|
||||
public unsupportedDistroErrorMessage = `Your current distro is not yet supported. We are expanding this list based on community feed back and contributions.
|
||||
If you would like to contribute to the list of supported distros, please visit: https://github.com/dotnet/vscode-dotnet-runtime/blob/main/Documentation/adding-distros.md`;
|
||||
public redhatUnsupportedDistroErrorMessage = 'Red Hat Enterprise Linux 7.0 is currently not supported. Follow the instructions here to download the .NET SDK: https://learn.microsoft.com/en-us/dotnet/core/install/linux-rhel#rhel-7--net-6. Or, install Red Hat Enterprise Linux 8.0 or Red Hat Enterprise Linux 9.0 from https://access.redhat.com/downloads/';
|
||||
public redhatUnsupportedDistroErrorMessage = `Red Hat Enterprise Linux 7.0 is currently not supported.
|
||||
Follow the instructions here to download the .NET SDK: https://learn.microsoft.com/en-us/dotnet/core/install/linux-rhel#rhel-7--net-6.
|
||||
Or, install Red Hat Enterprise Linux 8.0 or Red Hat Enterprise Linux 9.0 from https://access.redhat.com/downloads/;`
|
||||
protected acquireCtx: IDotnetAcquireContext | null | undefined;
|
||||
|
||||
constructor(private readonly workerContext : IAcquisitionWorkerContext, private readonly utilityContext : IUtilityContext,
|
||||
|
@ -231,7 +233,7 @@ If you would like to contribute to the list of supported distros, please visit:
|
|||
|
||||
if(supportStatus === DotnetDistroSupportStatus.Distro)
|
||||
{
|
||||
const microsoftFeedDir = await this.distroSDKProvider!.getExpectedDotnetMicrosoftFeedInstallationDirectory();
|
||||
const microsoftFeedDir = this.distroSDKProvider!.getExpectedDotnetMicrosoftFeedInstallationDirectory();
|
||||
if(fs.existsSync(microsoftFeedDir))
|
||||
{
|
||||
const err = new DotnetConflictingLinuxInstallTypesError(new EventCancellationError('DotnetConflictingLinuxInstallTypesError',
|
||||
|
@ -243,7 +245,7 @@ If you would like to contribute to the list of supported distros, please visit:
|
|||
}
|
||||
else if(supportStatus === DotnetDistroSupportStatus.Microsoft)
|
||||
{
|
||||
const distroFeedDir = await this.distroSDKProvider!.getExpectedDotnetDistroFeedInstallationDirectory();
|
||||
const distroFeedDir = this.distroSDKProvider!.getExpectedDotnetDistroFeedInstallationDirectory();
|
||||
if(fs.existsSync(distroFeedDir))
|
||||
{
|
||||
const err = new DotnetConflictingLinuxInstallTypesError(new EventCancellationError('DotnetConflictingLinuxInstallTypesError',
|
||||
|
@ -264,8 +266,8 @@ If you would like to contribute to the list of supported distros, please visit:
|
|||
await this.Initialize();
|
||||
|
||||
if(existingInstall && path.resolve(existingInstall) !== path.resolve(
|
||||
supportStatus === DotnetDistroSupportStatus.Distro ? await this.distroSDKProvider!.getExpectedDotnetDistroFeedInstallationDirectory()
|
||||
: await this.distroSDKProvider!.getExpectedDotnetMicrosoftFeedInstallationDirectory() ))
|
||||
supportStatus === DotnetDistroSupportStatus.Distro ? this.distroSDKProvider!.getExpectedDotnetDistroFeedInstallationDirectory()
|
||||
: this.distroSDKProvider!.getExpectedDotnetMicrosoftFeedInstallationDirectory() ))
|
||||
{
|
||||
const err = new DotnetCustomLinuxInstallExistsError(new EventCancellationError('DotnetCustomLinuxInstallExistsError',
|
||||
this.conflictingCustomInstallErrorMessage + existingInstall),
|
||||
|
|
|
@ -7,9 +7,7 @@ import { ICommandExecutor } from '../Utils/ICommandExecutor';
|
|||
import { IUtilityContext } from '../Utils/IUtilityContext';
|
||||
import { GenericDistroSDKProvider } from './GenericDistroSDKProvider';
|
||||
import { IAcquisitionWorkerContext } from './IAcquisitionWorkerContext';
|
||||
import { DotnetInstallMode } from './DotnetInstallMode';
|
||||
import { DistroVersionPair } from './LinuxVersionResolver';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class RedHatDistroSDKProvider extends GenericDistroSDKProvider
|
||||
{
|
||||
|
@ -20,8 +18,10 @@ export class RedHatDistroSDKProvider extends GenericDistroSDKProvider
|
|||
|
||||
protected myVersionDetails() : any
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const distroVersions = this.distroJson[this.distroVersion.distro][this.distroVersionsKey];
|
||||
const targetVersion = Math.floor(parseFloat(this.distroVersion.version[0])).toFixed(1);
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const versionData = distroVersions.filter((x: { [x: string]: string; }) => x[this.versionKey] === String(targetVersion));
|
||||
return versionData;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ import {
|
|||
EventBasedError
|
||||
} from '../EventStream/EventStreamEvents';
|
||||
import { WebRequestWorker } from '../Utils/WebRequestWorker';
|
||||
import { getInstallFromContext } from '../Utils/InstallIdUtilities';
|
||||
import { getInstallFromContext , getAssumedInstallInfo } from '../Utils/InstallIdUtilities';
|
||||
import { Debugging } from '../Utils/Debugging';
|
||||
|
||||
import { IVersionResolver } from './IVersionResolver';
|
||||
|
@ -24,9 +24,7 @@ import { DotnetVersionSupportPhase,
|
|||
IDotnetVersion
|
||||
} from '../IDotnetListVersionsContext';
|
||||
import { IAcquisitionWorkerContext } from './IAcquisitionWorkerContext';
|
||||
import { getAssumedInstallInfo } from '../Utils/InstallIdUtilities';
|
||||
import { DotnetInstallMode } from './DotnetInstallMode';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class VersionResolver implements IVersionResolver {
|
||||
protected webWorker: WebRequestWorker;
|
||||
|
@ -56,7 +54,7 @@ export class VersionResolver implements IVersionResolver {
|
|||
*/
|
||||
public async GetAvailableDotnetVersions(commandContext: IDotnetListVersionsContext | undefined) : Promise<IDotnetListVersionsResult>
|
||||
{
|
||||
const getSdkVersions : boolean = !commandContext?.listRuntimes;
|
||||
const getSdkVersions = !commandContext?.listRuntimes;
|
||||
const availableVersions : IDotnetListVersionsResult = [];
|
||||
|
||||
const response : any = await this.webWorker.getCachedData();
|
||||
|
@ -71,16 +69,23 @@ export class VersionResolver implements IVersionResolver {
|
|||
}
|
||||
else
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const releases = response['releases-index'];
|
||||
|
||||
for(const release of releases)
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if(release['release-type'] === 'lts' || release['release-type'] === 'sts')
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
availableVersions.push({
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
supportStatus: (release['release-type'] as DotnetVersionSupportStatus),
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
supportPhase: (release['support-phase'] as DotnetVersionSupportPhase),
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
version: release[getSdkVersions ? 'latest-sdk' : 'latest-runtime'],
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
channelVersion: release['channel-version']
|
||||
} as IDotnetVersion
|
||||
);
|
||||
|
@ -101,6 +106,8 @@ export class VersionResolver implements IVersionResolver {
|
|||
}
|
||||
catch(error : any)
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
throw new EventBasedError(error, error?.message, error?.stack);
|
||||
}
|
||||
|
||||
|
@ -114,8 +121,9 @@ export class VersionResolver implements IVersionResolver {
|
|||
}
|
||||
catch (error : any)
|
||||
{
|
||||
this.context.eventStream.post(new DotnetVersionResolutionError(new EventCancellationError('DotnetVersionResolutionError',
|
||||
error?.message ?? ''), getAssumedInstallInfo(version, mode)));
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
this.context.eventStream.post(new DotnetVersionResolutionError(new EventCancellationError('DotnetVersionResolutionError', error?.message ?? ''), getAssumedInstallInfo(version, mode)));
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -36,9 +36,6 @@ import { IUtilityContext } from '../Utils/IUtilityContext';
|
|||
import { IAcquisitionWorkerContext } from './IAcquisitionWorkerContext';
|
||||
import { DotnetInstall } from './DotnetInstall';
|
||||
import { CommandExecutorResult } from '../Utils/CommandExecutorResult';
|
||||
/* tslint:disable:only-arrow-functions */
|
||||
/* tslint:disable:no-empty */
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
namespace validationPromptConstants
|
||||
{
|
||||
|
@ -302,11 +299,15 @@ This report should be made at https://github.com/dotnet/vscode-dotnet-runtime/is
|
|||
}
|
||||
catch(error : any)
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if(error?.message?.includes('ENOENT'))
|
||||
{
|
||||
this.acquisitionContext.eventStream.post(new DotnetFileIntegrityFailureEvent(`The file ${installerFile} was not found, so we couldn't verify it.
|
||||
Please try again, or download the .NET Installer file yourself. You may also report your issue at https://github.com/dotnet/vscode-dotnet-runtime/issues.`));
|
||||
}
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
else if(error?.message?.includes('EPERM'))
|
||||
{
|
||||
this.acquisitionContext.eventStream.post(new DotnetFileIntegrityFailureEvent(`The file ${installerFile} did not have the correct permissions scope to be assessed.
|
||||
|
@ -316,6 +317,8 @@ Permissions: ${JSON.stringify(await this.commandRunner.execute(CommandExecutor.m
|
|||
}
|
||||
}
|
||||
|
||||
// async is needed to match the interface even if we don't use await.
|
||||
// eslint-disable-next-line @typescript-eslint/require-await
|
||||
public async getExpectedGlobalSDKPath(specificSDKVersionInstalled : string, installedArch : string) : Promise<string>
|
||||
{
|
||||
if(os.platform() === 'win32')
|
||||
|
@ -420,14 +423,22 @@ Please correct your PATH variable or make sure the 'open' utility is installed s
|
|||
}
|
||||
catch(error : any)
|
||||
{
|
||||
if(error?.message?.includes('EPERM'))
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if((error?.message as string)?.includes('EPERM'))
|
||||
{
|
||||
error.message = `The installer does not have permission to execute. Please try running as an administrator. ${error.message}.
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
error.message = `The installer does not have permission to execute. Please try running as an administrator. ${error?.message}.
|
||||
Permissions: ${JSON.stringify(await this.commandRunner.execute(CommandExecutor.makeCommand('icacls', [`"${installerPath}"`])))}`;
|
||||
}
|
||||
else if(error?.message?.includes('ENOENT'))
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
else if((error?.message as string)?.includes('ENOENT'))
|
||||
{
|
||||
error.message = `The .NET Installation files were not found. Please try again. ${error.message}`;
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
error.message = `The .NET Installation files were not found. Please try again. ${error?.message}`;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
|
|
|
@ -8,13 +8,10 @@ import { IDotnetInstallationContext } from '../Acquisition/IDotnetInstallationCo
|
|||
import { EventType } from './EventType';
|
||||
import { IEvent } from './IEvent';
|
||||
import { TelemetryUtilities } from './TelemetryUtilities';
|
||||
import { InstallToStrings } from '../Acquisition/DotnetInstall';
|
||||
import { DotnetInstall } from '../Acquisition/DotnetInstall';
|
||||
import { InstallToStrings , DotnetInstall } from '../Acquisition/DotnetInstall';
|
||||
import { DotnetInstallMode } from '../Acquisition/DotnetInstallMode';
|
||||
import { DotnetInstallType } from '../IDotnetAcquireContext';
|
||||
|
||||
// tslint:disable max-classes-per-file
|
||||
|
||||
export class EventCancellationError extends Error
|
||||
{
|
||||
constructor(public readonly eventType : string, msg : string, stack ? : string)
|
||||
|
@ -388,8 +385,8 @@ export class UserManualInstallFailure extends SuppressedAcquisitionError {
|
|||
eventName = 'UserManualInstallFailure';
|
||||
}
|
||||
|
||||
export class OffilneDetectionLogicTriggered extends SuppressedAcquisitionError {
|
||||
eventName = 'OffilneDetectionLogicTriggered';
|
||||
export class OfflineDetectionLogicTriggered extends SuppressedAcquisitionError {
|
||||
eventName = 'OfflineDetectionLogicTriggered';
|
||||
}
|
||||
|
||||
export class DotnetInstallationValidationMissed extends SuppressedAcquisitionError {
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
* Licensed to the .NET Foundation under one or more agreements.
|
||||
* The .NET Foundation licenses this file to you under the MIT license.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export interface IWindowDisplayWorker {
|
||||
showErrorMessage(message: string, callback: (response: string| undefined) => void, ...items: string[]): void;
|
||||
|
|
|
@ -25,7 +25,6 @@ import
|
|||
import { IEventStream } from './EventStream';
|
||||
import { IEvent } from './IEvent';
|
||||
import { IModalEventRepublisher } from './IModalEventPublisher';
|
||||
/* tslint:disable:no-empty */
|
||||
|
||||
export class ModalEventRepublisher implements IModalEventRepublisher
|
||||
{
|
||||
|
@ -113,5 +112,5 @@ export class ModalEventRepublisher implements IModalEventRepublisher
|
|||
}
|
||||
|
||||
public dispose(): void {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ export class TelemetryObserver implements IEventStreamObserver {
|
|||
vscode.env.onDidChangeTelemetryEnabled((newIsTelemetryEnabledSetting: boolean) =>
|
||||
{
|
||||
this.isExtensionTelemetryEnabled = newIsTelemetryEnabledSetting;
|
||||
TelemetryUtilities.setDotnetSDKTelemetryToMatch(this.isExtensionTelemetryEnabled, this.extensionContext, this.acquisitionContext, this.utilityContext);
|
||||
TelemetryUtilities.setDotnetSDKTelemetryToMatch(this.isExtensionTelemetryEnabled, this.extensionContext, this.acquisitionContext, this.utilityContext).catch(() => {});
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -82,6 +82,6 @@ export class TelemetryObserver implements IEventStreamObserver {
|
|||
|
||||
public dispose(): void
|
||||
{
|
||||
this.telemetryReporter.dispose();
|
||||
this.telemetryReporter.dispose().catch(() => {});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
import * as os from 'os';
|
||||
import { env, window } from 'vscode';
|
||||
import { IWindowDisplayWorker } from './IWindowDisplayWorker';
|
||||
/* tslint:disable:no-any */
|
||||
/* eslint-disable */ // When editing this file, please remove this and fix the linting concerns.
|
||||
|
||||
|
||||
export class WindowDisplayWorker implements IWindowDisplayWorker {
|
||||
private readonly pathPlaceholder = os.platform() === 'win32' ? 'C:\\Program Files\\dotnet\\dotnet.exe' : '/usr/local/share/dotnet/dotnet';
|
||||
|
|
|
@ -7,6 +7,6 @@ import { EnsureDependenciesErrorConfiguration } from './Utils/ErrorHandler';
|
|||
|
||||
export interface IDotnetEnsureDependenciesContext {
|
||||
command: string;
|
||||
arguments: cp.SpawnSyncOptionsWithStringEncoding | undefined;
|
||||
arguments: cp.SpawnSyncOptionsWithStringEncoding;
|
||||
errorConfiguration?: EnsureDependenciesErrorConfiguration;
|
||||
}
|
||||
|
|
|
@ -5,5 +5,4 @@
|
|||
|
||||
import { Memento } from 'vscode';
|
||||
|
||||
/* tslint:disable:no-empty-interface */
|
||||
export interface IExtensionState extends Memento {}
|
||||
export type IExtensionState = Memento
|
||||
|
|
|
@ -58,9 +58,6 @@ import { CommandExecutorResult } from './CommandExecutorResult';
|
|||
import { isRunningUnderWSL, loopWithTimeoutOnCond } from './TypescriptUtilities';
|
||||
import { IEventStream } from '../EventStream/EventStream';
|
||||
|
||||
/* tslint:disable:no-any */
|
||||
/* tslint:disable:no-string-literal */
|
||||
|
||||
export class CommandExecutor extends ICommandExecutor
|
||||
{
|
||||
private pathTroubleshootingOption = 'Troubleshoot';
|
||||
|
@ -173,7 +170,7 @@ ${stderr}`));
|
|||
const processAliveOkSentinelFile = path.join(this.sudoProcessCommunicationDir, 'ok.txt');
|
||||
const fakeLockFile = path.join(this.sudoProcessCommunicationDir, 'fakeLockFile'); // We need a file to lock the directory in the API besides the dir lock file
|
||||
|
||||
await (this.fileUtil as FileUtilities).writeFileOntoDisk('', fakeLockFile, false, this.context?.eventStream!);
|
||||
await (this.fileUtil as FileUtilities).writeFileOntoDisk('', fakeLockFile, false, this.context?.eventStream);
|
||||
|
||||
// Prepare to lock directory
|
||||
const directoryLock = 'dir.lock';
|
||||
|
@ -186,9 +183,9 @@ ${stderr}`));
|
|||
{
|
||||
this.context?.eventStream.post(new DotnetLockAcquiredEvent(`Lock Acquired.`, new Date().toISOString(), directoryLockPath, fakeLockFile));
|
||||
|
||||
await this.fileUtil.wipeDirectory(this.sudoProcessCommunicationDir, this.context?.eventStream, ['.txt']);
|
||||
(this.fileUtil as FileUtilities).wipeDirectory(this.sudoProcessCommunicationDir, this.context?.eventStream, ['.txt']);
|
||||
|
||||
await this.fileUtil.writeFileOntoDisk('', processAliveOkSentinelFile, true, this.context?.eventStream);
|
||||
await (this.fileUtil as FileUtilities).writeFileOntoDisk('', processAliveOkSentinelFile, true, this.context?.eventStream);
|
||||
this.context?.eventStream.post(new SudoProcAliveCheckBegin(`Looking for Sudo Process Master, wrote OK file. ${new Date().toISOString()}`));
|
||||
|
||||
const waitTime = this.context?.timeoutSeconds ? ((this.context?.timeoutSeconds/3) * 1000) : 180000;
|
||||
|
@ -242,7 +239,7 @@ It had previously spawned: ${this.hasEverLaunchedSudoFork}.`), getInstallFromCon
|
|||
const outputFile = path.join(this.sudoProcessCommunicationDir, 'output.txt');
|
||||
const fakeLockFile = path.join(this.sudoProcessCommunicationDir, 'fakeLockFile'); // We need a file to lock the directory in the API besides the dir lock file
|
||||
|
||||
await (this.fileUtil as FileUtilities).writeFileOntoDisk('', fakeLockFile, false, this.context?.eventStream!);
|
||||
await (this.fileUtil as FileUtilities).writeFileOntoDisk('', fakeLockFile, false, this.context?.eventStream);
|
||||
|
||||
// Prepare to lock directory
|
||||
const directoryLock = 'dir.lock';
|
||||
|
@ -258,7 +255,7 @@ It had previously spawned: ${this.hasEverLaunchedSudoFork}.`), getInstallFromCon
|
|||
this.context?.eventStream.post(new DotnetLockAcquiredEvent(`Lock Acquired.`, new Date().toISOString(), directoryLockPath, fakeLockFile));
|
||||
(this.fileUtil as FileUtilities).wipeDirectory(this.sudoProcessCommunicationDir, this.context?.eventStream, ['.txt', '.json']);
|
||||
|
||||
await (this.fileUtil as FileUtilities).writeFileOntoDisk(`${commandToExecuteString}`, commandFile, true, this.context?.eventStream!);
|
||||
await (this.fileUtil as FileUtilities).writeFileOntoDisk(`${commandToExecuteString}`, commandFile, true, this.context?.eventStream);
|
||||
this.context?.eventStream.post(new SudoProcCommandExchangeBegin(`Handing command off to master process. ${new Date().toISOString()}`));
|
||||
this.context?.eventStream.post(new CommandProcessorExecutionBegin(`The command ${commandToExecuteString} was forwarded to the master process to run.`));
|
||||
|
||||
|
@ -281,7 +278,7 @@ It had previously spawned: ${this.hasEverLaunchedSudoFork}.`), getInstallFromCon
|
|||
status : (fs.readFileSync(statusFile, 'utf8')).trim()
|
||||
} as CommandExecutorResult;
|
||||
this.context?.eventStream.post(new DotnetLockReleasedEvent(`Lock about to be released.`, new Date().toISOString(), directoryLockPath, fakeLockFile));
|
||||
await this.fileUtil.wipeDirectory(this.sudoProcessCommunicationDir, this.context?.eventStream, ['.txt']);
|
||||
(this.fileUtil as FileUtilities).wipeDirectory(this.sudoProcessCommunicationDir, this.context?.eventStream, ['.txt']);
|
||||
|
||||
return release();
|
||||
});
|
||||
|
@ -377,15 +374,23 @@ ${(commandOutputJson as CommandExecutorResult).stderr}.`),
|
|||
* @param terminalFailure Whether to throw up an error when executing under sudo or suppress it and return stderr
|
||||
* @returns the result(s) of each command. Can throw generically if the command fails.
|
||||
*/
|
||||
public async execute(command : CommandExecutorCommand, options : any | null = null, terminalFailure = true) : Promise<CommandExecutorResult>
|
||||
public async execute(command : CommandExecutorCommand, options : any = null, terminalFailure = true) : Promise<CommandExecutorResult>
|
||||
{
|
||||
const fullCommandString = `${command.commandRoot} ${command.commandParts.join(' ')}`;
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if(options && !options?.cwd)
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
options.cwd = path.resolve(__dirname);
|
||||
}
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if(options && !options?.shell)
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
options.shell = true;
|
||||
}
|
||||
if(!options)
|
||||
|
@ -402,15 +407,14 @@ ${(commandOutputJson as CommandExecutorResult).stderr}.`),
|
|||
this.context?.eventStream.post(new CommandExecutionEvent(`Executing command ${fullCommandString}
|
||||
with options ${JSON.stringify(options)}.`));
|
||||
|
||||
let commandResult;
|
||||
|
||||
if(command.runUnderSudo)
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
options.name = this.getSanitizedCallerName();
|
||||
// tslint:disable no-return-await
|
||||
return await new Promise<CommandExecutorResult>(async (resolve, reject) =>
|
||||
return new Promise<CommandExecutorResult>((resolve, reject) =>
|
||||
{
|
||||
execElevated(fullCommandString, options, (error?: any, execStdout?: any, execStderr?: any) =>
|
||||
execElevated(fullCommandString, options, (error?: Error, execStdout?: string | Buffer, execStderr?: string | Buffer) =>
|
||||
{
|
||||
if(error && terminalFailure)
|
||||
{
|
||||
|
@ -421,12 +425,12 @@ with options ${JSON.stringify(options)}.`));
|
|||
this.context?.eventStream.post(new CommandExecutionStdError(`The command ${fullCommandString} encountered ERROR: ${JSON.stringify(error)}`));
|
||||
}
|
||||
|
||||
return resolve({ status: error?.code ? error.code : '0', stderr: execStderr, stdout: execStdout} as CommandExecutorResult);
|
||||
return resolve({ status: error ? error.message : '0', stderr: execStderr, stdout: execStdout} as CommandExecutorResult);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
commandResult = proc.spawnSync(command.commandRoot, command.commandParts, options);
|
||||
const commandResult : proc.SpawnSyncReturns<string> = proc.spawnSync(command.commandRoot, command.commandParts, options);
|
||||
|
||||
if(os.platform() === 'win32')
|
||||
{
|
||||
|
@ -452,7 +456,7 @@ with options ${JSON.stringify(options)}.`));
|
|||
else
|
||||
{
|
||||
this.context?.eventStream.post(new CommandExecutionNoStatusCodeWarning(`The command ${fullCommandString} with
|
||||
result: ${commandResult.toString()} had no status or signal.`));
|
||||
result: ${JSON.stringify(commandResult)} had no status or signal.`));
|
||||
return '000751'; // Error code 000751 : The command did not report an exit code upon completion. This is never expected
|
||||
}
|
||||
}
|
||||
|
@ -462,7 +466,7 @@ result: ${commandResult.toString()} had no status or signal.`));
|
|||
}
|
||||
}
|
||||
|
||||
private logCommandResult(commandResult : any, fullCommandStringForTelemetryOnly : string)
|
||||
private logCommandResult(commandResult : proc.SpawnSyncReturns<string>, fullCommandStringForTelemetryOnly : string)
|
||||
{
|
||||
this.context?.eventStream.post(new CommandExecutionStatusEvent(`The command ${fullCommandStringForTelemetryOnly} exited
|
||||
with status: ${commandResult.status?.toString()}.`));
|
||||
|
@ -481,6 +485,9 @@ ${commandResult.stderr}`));
|
|||
{
|
||||
// 'permission' comes from an unlocalized string: https://github.com/bpasero/sudo-prompt/blob/21d9308edcf970f0a9ee0580c539b1457b3dc45b/index.js#L678
|
||||
// if you reject on the password prompt on windows before SDK window pops up, no code will be set, so we need to check for this string.
|
||||
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if(error?.code === 126 || (error?.message as string)?.includes('permission'))
|
||||
{
|
||||
const cancelledErr = new CommandExecutionUserRejectedPasswordRequest(new EventCancellationError('CommandExecutionUserRejectedPasswordRequest',
|
||||
|
@ -490,6 +497,8 @@ The user refused the password prompt.`),
|
|||
this.context?.eventStream.post(cancelledErr);
|
||||
return cancelledErr.error;
|
||||
}
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
else if(error?.code === 111777)
|
||||
{
|
||||
const securityErr = new CommandExecutionUnknownCommandExecutionAttempt(new EventCancellationError('CommandExecutionUnknownCommandExecutionAttempt',
|
||||
|
@ -632,15 +641,19 @@ Please report this at https://github.com/dotnet/vscode-dotnet-runtime/issues.`),
|
|||
|
||||
protected runPathCommand(pathCommand: string, troubleshootingUrl : string, displayWorker: IWindowDisplayWorker)
|
||||
{
|
||||
try {
|
||||
try
|
||||
{
|
||||
proc.execSync(pathCommand);
|
||||
} catch (error) {
|
||||
displayWorker.showWarningMessage(`Unable to add SDK to the PATH: ${error}`,
|
||||
async (response: string | undefined) => {
|
||||
if (response === this.pathTroubleshootingOption) {
|
||||
open(`${troubleshootingUrl}#unable-to-add-to-path`);
|
||||
}
|
||||
}, this.pathTroubleshootingOption);
|
||||
}
|
||||
catch (error : any)
|
||||
{
|
||||
displayWorker.showWarningMessage(`Unable to add SDK to the PATH: ${JSON.stringify(error)}`, (response: string | undefined) =>
|
||||
{
|
||||
if (response === this.pathTroubleshootingOption)
|
||||
{
|
||||
open(`${troubleshootingUrl}#unable-to-add-to-path`).catch(() => {});
|
||||
}
|
||||
}, this.pathTroubleshootingOption);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@ import { formatIssueUrl } from './IssueReporter';
|
|||
import { IAcquisitionWorkerContext } from '../Acquisition/IAcquisitionWorkerContext';
|
||||
import { GetDotnetInstallInfo } from '../Acquisition/DotnetInstall';
|
||||
import { DotnetCoreAcquisitionWorker } from '../Acquisition/DotnetCoreAcquisitionWorker';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export enum AcquireErrorConfiguration {
|
||||
DisplayAllErrorPopups = 0,
|
||||
|
@ -54,11 +53,11 @@ Our CDN may be blocked in China or experience significant slowdown, in which cas
|
|||
|
||||
let showMessage = true;
|
||||
|
||||
export async function callWithErrorHandling<T>(callback: () => T, context: IIssueContext, requestingExtensionId?: string, acquireContext? : IAcquisitionWorkerContext): Promise<T | undefined> {
|
||||
export function callWithErrorHandling<T>(callback: () => T, context: IIssueContext, requestingExtensionId?: string, acquireContext? : IAcquisitionWorkerContext): T | undefined {
|
||||
const isAcquisitionError = acquireContext ? true : false;
|
||||
try
|
||||
{
|
||||
const result = await callback();
|
||||
const result = callback();
|
||||
context.eventStream.post(new DotnetCommandSucceeded(context.commandName));
|
||||
return result;
|
||||
}
|
||||
|
@ -76,6 +75,8 @@ export async function callWithErrorHandling<T>(callback: () => T, context: IIssu
|
|||
|
||||
if(acquireContext)
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
context.eventStream.post(new DotnetAcquisitionFinalError(error, (caughtError?.eventType) ?? 'Unknown',
|
||||
GetDotnetInstallInfo(acquireContext.acquisitionContext.version, acquireContext.acquisitionContext.mode!,
|
||||
acquireContext.acquisitionContext.installType ?? 'local', acquireContext.acquisitionContext.architecture ??
|
||||
|
@ -88,12 +89,13 @@ export async function callWithErrorHandling<T>(callback: () => T, context: IIssu
|
|||
if ((error.message as string).includes(timeoutConstants.timeoutMessage))
|
||||
{
|
||||
context.displayWorker.showErrorMessage(`${errorConstants.errorMessage}${ context.version ? ` (${context.version})` : '' }: ${ error.message }`,
|
||||
async (response: string | undefined) => {
|
||||
if (response === timeoutConstants.moreInfoOption)
|
||||
(response: string | undefined) =>
|
||||
{
|
||||
open(context.timeoutInfoUrl);
|
||||
}
|
||||
}, timeoutConstants.moreInfoOption);
|
||||
if (response === timeoutConstants.moreInfoOption)
|
||||
{
|
||||
open(context.timeoutInfoUrl).catch(() => {});
|
||||
}
|
||||
}, timeoutConstants.moreInfoOption);
|
||||
}
|
||||
else if (!isCancellationStyleError(error) && showMessage)
|
||||
{
|
||||
|
@ -108,7 +110,7 @@ export async function callWithErrorHandling<T>(callback: () => T, context: IIssu
|
|||
{
|
||||
if (response === errorConstants.moreInfoOption)
|
||||
{
|
||||
open(context.moreInfoUrl);
|
||||
open(context.moreInfoUrl).catch(() => {});
|
||||
}
|
||||
else if (response === errorConstants.hideOption)
|
||||
{
|
||||
|
@ -117,8 +119,8 @@ export async function callWithErrorHandling<T>(callback: () => T, context: IIssu
|
|||
else if (response === errorConstants.reportOption)
|
||||
{
|
||||
const [url, issueBody] = formatIssueUrl(error, context);
|
||||
context.displayWorker.copyToUserClipboard(issueBody);
|
||||
open(url);
|
||||
context.displayWorker.copyToUserClipboard(issueBody).catch(() => {});
|
||||
open(url).catch(() => {});
|
||||
}
|
||||
else if (response === errorConstants.configureManuallyOption && requestingExtensionId)
|
||||
{
|
||||
|
|
|
@ -21,7 +21,6 @@ import { DotnetCommandFallbackArchitectureEvent,
|
|||
DotnetLockReleasedEvent,
|
||||
SuppressedAcquisitionError
|
||||
} from '../EventStream/EventStreamEvents';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class FileUtilities extends IFileUtilities
|
||||
{
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
* The .NET Foundation licenses this file to you under the MIT license.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
/*
|
||||
tslint:disable:no-any */
|
||||
|
||||
import { CommandExecutorCommand } from './CommandExecutorCommand';
|
||||
import { IAcquisitionWorkerContext } from '../Acquisition/IAcquisitionWorkerContext';
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
import { IEventStream } from '../EventStream/EventStream';
|
||||
|
||||
|
|
|
@ -4,8 +4,7 @@
|
|||
* ------------------------------------------------------------------------------------------ */
|
||||
|
||||
import { DotnetCoreAcquisitionWorker } from '../Acquisition/DotnetCoreAcquisitionWorker';
|
||||
import { looksLikeRuntimeVersion } from '../Acquisition/DotnetInstall';
|
||||
import { DotnetInstall } from '../Acquisition/DotnetInstall';
|
||||
import { looksLikeRuntimeVersion , DotnetInstall } from '../Acquisition/DotnetInstall';
|
||||
import { DOTNET_INSTALL_MODE_LIST, DotnetInstallMode } from '../Acquisition/DotnetInstallMode';
|
||||
import { IAcquisitionWorkerContext } from '../Acquisition/IAcquisitionWorkerContext';
|
||||
import { DotnetInstallType } from '../IDotnetAcquireContext';
|
||||
|
|
|
@ -4,9 +4,11 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
import { sanitize } from './ContentSantizer';
|
||||
import { IIssueContext } from './IIssueContext';
|
||||
// tslint:disable no-var-requires
|
||||
const packageJson = require('../../package.json');
|
||||
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
|
||||
const packageJson = require('../../package.json');
|
||||
const issuesUrl = `https://github.com/dotnet/vscode-dotnet-runtime/issues/new/choose`;
|
||||
|
||||
export function formatIssueUrl(error: Error | undefined, context: IIssueContext): [ string, string ] {
|
||||
|
@ -14,11 +16,12 @@ export function formatIssueUrl(error: Error | undefined, context: IIssueContext)
|
|||
|
||||
const errorMessage = !error ? '' : `**Error Message:** ${ sanitize(error!.message) }
|
||||
**Error Stack:** ${ error.stack === undefined ? '' : sanitize(error!.stack!) }`;
|
||||
|
||||
const issueBody = `<!-- IMPORTANT: Please be sure to remove any private information before submitting. -->
|
||||
|
||||
Please attach the log file located at ${ context.logger.getFileLocation() }. Note that this file may contain personal data.
|
||||
|
||||
**Extension Version:** ${ packageJson.version }
|
||||
**Extension Version:** ${ packageJson?.version }
|
||||
${ errorMessage }`;
|
||||
|
||||
return [issuesUrl, issueBody];
|
||||
|
|
|
@ -34,13 +34,12 @@ import {
|
|||
DotnetOfflineFailure,
|
||||
EventBasedError,
|
||||
EventCancellationError,
|
||||
OffilneDetectionLogicTriggered,
|
||||
OfflineDetectionLogicTriggered,
|
||||
SuppressedAcquisitionError,
|
||||
WebRequestError,
|
||||
WebRequestSent
|
||||
} from '../EventStream/EventStreamEvents';
|
||||
import { getInstallFromContext } from './InstallIdUtilities';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class WebRequestWorker
|
||||
{
|
||||
|
@ -140,7 +139,7 @@ export class WebRequestWorker
|
|||
return true;
|
||||
}).catch((error : any) =>
|
||||
{
|
||||
eventStream.post(new OffilneDetectionLogicTriggered((error as EventCancellationError), `DNS resolution failed at microsoft.com, ${JSON.stringify(error)}.`));
|
||||
eventStream.post(new OfflineDetectionLogicTriggered((error as EventCancellationError), `DNS resolution failed at microsoft.com, ${JSON.stringify(error)}.`));
|
||||
return false;
|
||||
});
|
||||
return couldConnect;
|
||||
|
@ -219,12 +218,16 @@ export class WebRequestWorker
|
|||
await this.axiosGet(url, options)
|
||||
.then(response =>
|
||||
{
|
||||
response.data.pipe(file);
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
response?.data?.pipe(file);
|
||||
return finished(file);
|
||||
});
|
||||
}
|
||||
catch(error : any)
|
||||
{
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if(error?.message && (error?.message as string)?.includes('ENOSPC'))
|
||||
{
|
||||
const err = new DiskIsFullError(new EventBasedError('DiskIsFullError',
|
||||
|
@ -235,19 +238,20 @@ export class WebRequestWorker
|
|||
else
|
||||
{
|
||||
const err = new DotnetDownloadFailure(new EventBasedError('DotnetDownloadFailure',
|
||||
`We failed to download the .NET Installer. Please try to install the .NET SDK manually.
|
||||
Error: ${error.message}`), getInstallFromContext(this.context));
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
`We failed to download the .NET Installer. Please try to install the .NET SDK manually. Error: ${error?.message}`), getInstallFromContext(this.context));
|
||||
this.context.eventStream.post(err);
|
||||
throw err.error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async getAxiosOptions(numRetries: number, furtherOptions? : {}, keepAlive = true)
|
||||
private async getAxiosOptions(numRetries: number, furtherOptions? : object, keepAlive = true) : Promise<object>
|
||||
{
|
||||
await this.ActivateProxyAgentIfFound();
|
||||
|
||||
const options = {
|
||||
const options : object = {
|
||||
timeout: this.websiteTimeoutMs,
|
||||
'axios-retry': { retries: numRetries },
|
||||
...(keepAlive && {headers: { 'Connection': 'keep-alive' }}),
|
||||
|
@ -287,8 +291,10 @@ Error: ${error.message}`), getInstallFromContext(this.context));
|
|||
if(isAxiosError(error))
|
||||
{
|
||||
const axiosBasedError = error as AxiosError;
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const summarizedError = new EventBasedError('WebRequestFailedFromAxios',
|
||||
`Request to ${this.url} Failed: ${axiosBasedError.message}. Aborting.
|
||||
`Request to ${this.url} Failed: ${axiosBasedError?.message}. Aborting.
|
||||
${axiosBasedError.cause? `Error Cause: ${axiosBasedError.cause!.message}` : ``}
|
||||
Please ensure that you are online.
|
||||
|
||||
|
@ -298,8 +304,9 @@ If you're on a proxy and disable registry access, you must set the proxy in our
|
|||
}
|
||||
else
|
||||
{
|
||||
const genericError = new EventBasedError('WebRequestFailedGenerically',
|
||||
`Web Request to ${this.url} Failed: ${error.message}. Aborting. Stack: ${'stack' in error ? error?.stack : 'unavailable.'}`);
|
||||
// Remove this when https://github.com/typescript-eslint/typescript-eslint/issues/2728 is done
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
const genericError = new EventBasedError('WebRequestFailedGenerically', `Web Request to ${this.url} Failed: ${error?.message}. Aborting. Stack: ${'stack' in error ? error?.stack : 'unavailable.'}`);
|
||||
this.context.eventStream.post(new WebRequestError(genericError, getInstallFromContext(this.context)));
|
||||
throw genericError;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
* The .NET Foundation licenses this file to you under the MIT license.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import * as vscode from 'vscode';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class MockEnvironmentVariableCollection implements vscode.EnvironmentVariableCollection {
|
||||
|
||||
|
|
|
@ -41,7 +41,6 @@ import { InstallationGraveyard } from '../../Acquisition/InstallationGraveyard';
|
|||
import { CommandExecutorResult } from '../../Utils/CommandExecutorResult';
|
||||
|
||||
const testDefaultTimeoutTimeMs = 60000;
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class MockExtensionContext implements IExtensionState {
|
||||
private values: { [n: string]: any; } = {};
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
* The .NET Foundation licenses this file to you under the MIT license.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import { IWindowDisplayWorker } from '../../EventStream/IWindowDisplayWorker';
|
||||
/* tslint:disable:no-any */
|
||||
|
||||
export class MockWindowDisplayWorker implements IWindowDisplayWorker {
|
||||
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"extends": "../tslint.json"
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -82,7 +82,7 @@
|
|||
"test": "npm run compile --silent && node ./dist/test/functional/runTest.js",
|
||||
"clean": "rimraf dist",
|
||||
"compile-all": "cd ../vscode-dotnet-runtime-library && npm install && npm run compile && cd ../vscode-dotnet-sdk-extension && npm install && npm run compile",
|
||||
"lint": "tslint -c ../tslint.json '../vscode-dotnet-runtime-library/src/**/*.ts' '../vscode-dotnet-sdk-extension/src/**/*.ts'",
|
||||
"lint": "eslint -c .eslintrc.js --ext=.ts vscode-dotnet-runtime-library/src/**/*.ts vscode-dotnet-runtime-extension/src/**/*.ts --ignore-pattern \"**/test/\" --fix",
|
||||
"webpack": "webpack --mode development"
|
||||
},
|
||||
"dependencies": {
|
||||
|
|
|
@ -42,7 +42,6 @@ import { dotnetCoreAcquisitionExtensionId } from './DotnetCoreAcquisitionId';
|
|||
import { GlobalInstallerResolver } from 'vscode-dotnet-runtime-library/dist/Acquisition/GlobalInstallerResolver';
|
||||
import { IAcquisitionWorkerContext } from 'vscode-dotnet-runtime-library/dist/Acquisition/IAcquisitionWorkerContext';
|
||||
|
||||
// tslint:disable no-var-requires
|
||||
const packageJson = require('../package.json');
|
||||
|
||||
// Extension constants
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
* Licensed to the .NET Foundation under one or more agreements.
|
||||
* The .NET Foundation licenses this file to you under the MIT license.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
/* tslint:disable:no-any */
|
||||
/* tslint:disable:only-arrow-functions */
|
||||
|
||||
import * as chai from 'chai';
|
||||
import * as chaiAsPromised from 'chai-as-promised';
|
||||
import * as cp from 'child_process';
|
||||
|
@ -38,13 +37,10 @@ import * as extension from '../../extension';
|
|||
import { uninstallSDKExtension } from '../../ExtensionUninstall';
|
||||
import { warn } from 'console';
|
||||
import { InstallTrackerSingleton } from 'vscode-dotnet-runtime-library/dist/Acquisition/InstallTrackerSingleton';
|
||||
import { mock } from 'node:test';
|
||||
|
||||
const standardTimeoutTime = 100000;
|
||||
const assert = chai.assert;
|
||||
chai.use(chaiAsPromised);
|
||||
/* tslint:disable:no-any */
|
||||
/* tslint:disable:no-unsafe-finally */
|
||||
|
||||
const currentSDKVersion = '7.0';
|
||||
suite('DotnetCoreAcquisitionExtension End to End', function ()
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"extends": "../tslint.json"
|
||||
}
|
1976
yarn.lock
1976
yarn.lock
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Загрузка…
Ссылка в новой задаче