diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eae2e16260659..77534f96324c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/setup-node@v2 with: - node-version: 14 + node-version: 16 - uses: actions/setup-python@v2 with: @@ -113,7 +113,7 @@ jobs: - uses: actions/setup-node@v2 with: - node-version: 14 + node-version: 16 - name: Compute node modules cache key id: nodeModulesCacheKey @@ -123,8 +123,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules14-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules14- + key: ${{ runner.os }}-cacheNodeModules19-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules19- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} @@ -185,7 +185,7 @@ jobs: - uses: actions/setup-node@v2 with: - node-version: 14 + node-version: 16 - name: Compute node modules cache key id: nodeModulesCacheKey @@ -195,8 +195,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules14-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules14- + key: ${{ runner.os }}-cacheNodeModules19-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules19- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} @@ -259,7 +259,7 @@ jobs: - uses: actions/setup-node@v2 with: - node-version: 14 + node-version: 16 - name: Compute node modules cache key id: nodeModulesCacheKey @@ -269,8 +269,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules14-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules14- + key: ${{ runner.os }}-cacheNodeModules19-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules19- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} diff --git a/.github/workflows/rich-navigation.yml b/.github/workflows/rich-navigation.yml index 2afe38c5e717f..1d8357e0a3595 100644 --- a/.github/workflows/rich-navigation.yml +++ b/.github/workflows/rich-navigation.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/setup-node@v2 with: - node-version: 14 + node-version: 16 - name: Install dependencies if: steps.caching-stage.outputs.cache-hit != 'true' diff --git a/.yarnrc b/.yarnrc index 481bf7bfa46da..8a679354e6c80 100644 --- a/.yarnrc +++ b/.yarnrc @@ -1,4 +1,4 @@ disturl "https://electronjs.org/headers" -target "13.5.2" +target "16.0.8" runtime "electron" build_from_source "true" diff --git a/build/.cachesalt b/build/.cachesalt index ca859ca22559a..8df56c079a4a3 100644 --- a/build/.cachesalt +++ b/build/.cachesalt @@ -1 +1 @@ -2021-11-24T12:04:58.681Z +2022-02-03T12:38:01.545Z diff --git a/build/azure-pipelines/darwin/product-build-darwin-sign.yml b/build/azure-pipelines/darwin/product-build-darwin-sign.yml index 7d28236e2bf49..e67678d933544 100644 --- a/build/azure-pipelines/darwin/product-build-darwin-sign.yml +++ b/build/azure-pipelines/darwin/product-build-darwin-sign.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml index 375da9de1b775..e0d4c43d8e3eb 100644 --- a/build/azure-pipelines/darwin/product-build-darwin.yml +++ b/build/azure-pipelines/darwin/product-build-darwin.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" diff --git a/build/azure-pipelines/distro-build.yml b/build/azure-pipelines/distro-build.yml index 53b62b47a4e1c..307f226dc0a97 100644 --- a/build/azure-pipelines/distro-build.yml +++ b/build/azure-pipelines/distro-build.yml @@ -11,7 +11,7 @@ pr: steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" diff --git a/build/azure-pipelines/exploration-build.yml b/build/azure-pipelines/exploration-build.yml index 5b6599d8dab55..a80650bb92dcd 100644 --- a/build/azure-pipelines/exploration-build.yml +++ b/build/azure-pipelines/exploration-build.yml @@ -7,7 +7,7 @@ pr: none steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" diff --git a/build/azure-pipelines/linux/product-build-alpine.yml b/build/azure-pipelines/linux/product-build-alpine.yml index e425e670cd38a..d2563b82f6813 100644 --- a/build/azure-pipelines/linux/product-build-alpine.yml +++ b/build/azure-pipelines/linux/product-build-alpine.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" diff --git a/build/azure-pipelines/linux/product-build-linux-client.yml b/build/azure-pipelines/linux/product-build-linux-client.yml index 3e2e56bf20ce0..e3d4018f9dca3 100644 --- a/build/azure-pipelines/linux/product-build-linux-client.yml +++ b/build/azure-pipelines/linux/product-build-linux-client.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" @@ -87,21 +87,40 @@ steps: set -e export npm_config_arch=$(NPM_ARCH) - if [ -z "$CC" ] || [ -z "$CXX" ]; then - # Download clang based on chromium revision used by vscode - curl -s https://raw.githubusercontent.com/chromium/chromium/91.0.4472.164/tools/clang/scripts/update.py | python - --output-dir=$PWD/.build/CR_Clang --host-os=linux - # Download libcxx headers and objects from upstream electron releases - DEBUG=libcxx-fetcher \ - VSCODE_LIBCXX_OBJECTS_DIR=$PWD/.build/libcxx-objects \ - VSCODE_LIBCXX_HEADERS_DIR=$PWD/.build/libcxx_headers \ - VSCODE_LIBCXXABI_HEADERS_DIR=$PWD/.build/libcxxabi_headers \ - VSCODE_ARCH="$(NPM_ARCH)" \ - node build/linux/libcxx-fetcher.js - # Set compiler toolchain - export CC=$PWD/.build/CR_Clang/bin/clang - export CXX=$PWD/.build/CR_Clang/bin/clang++ - export CXXFLAGS="-nostdinc++ -D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS -D__NO_INLINE__ -isystem$PWD/.build/libcxx_headers/include -isystem$PWD/.build/libcxxabi_headers/include -fPIC -flto=thin -fsplit-lto-unit" - export LDFLAGS="-stdlib=libc++ -fuse-ld=lld -flto=thin -fsplit-lto-unit -L$PWD/.build/libcxx-objects -lc++abi" + # Download clang based on chromium revision used by vscode + curl -s https://raw.githubusercontent.com/chromium/chromium/96.0.4664.110/tools/clang/scripts/update.py | python - --output-dir=$PWD/.build/CR_Clang --host-os=linux + # Download libcxx headers and objects from upstream electron releases + DEBUG=libcxx-fetcher \ + VSCODE_LIBCXX_OBJECTS_DIR=$PWD/.build/libcxx-objects \ + VSCODE_LIBCXX_HEADERS_DIR=$PWD/.build/libcxx_headers \ + VSCODE_LIBCXXABI_HEADERS_DIR=$PWD/.build/libcxxabi_headers \ + VSCODE_ARCH="$(NPM_ARCH)" \ + node build/linux/libcxx-fetcher.js + # Set compiler toolchain + # Flags for the client build are based on + # https://source.chromium.org/chromium/chromium/src/+/refs/tags/96.0.4664.110:build/config/arm.gni + # https://source.chromium.org/chromium/chromium/src/+/refs/tags/96.0.4664.110:build/config/compiler/BUILD.gn + # https://source.chromium.org/chromium/chromium/src/+/refs/tags/96.0.4664.110:build/config/c++/BUILD.gn + export CC=$PWD/.build/CR_Clang/bin/clang + export CXX=$PWD/.build/CR_Clang/bin/clang++ + export CXXFLAGS="-nostdinc++ -D__NO_INLINE__ -isystem$PWD/.build/libcxx_headers -isystem$PWD/.build/libcxx_headers/include -isystem$PWD/.build/libcxxabi_headers/include -fPIC -flto=thin -fsplit-lto-unit" + export CFLAGS="-nostdinc++ -D__NO_INLINE__ -isystem$PWD/.build/libcxx_headers -isystem$PWD/.build/libcxx_headers/include -isystem$PWD/.build/libcxxabi_headers/include -fPIC -flto=thin -fsplit-lto-unit" + export LDFLAGS="-stdlib=libc++ -fuse-ld=lld -flto=thin -fsplit-lto-unit -L$PWD/.build/libcxx-objects -lc++abi" + + if [ "$VSCODE_ARCH" == "arm64" ]; then + export CXXFLAGS="${CXXFLAGS} --target=aarch64-linux-gnu -fwhole-program-vtables" + export CFLAGS="${CFLAGS} --target=aarch64-linux-gnu -fwhole-program-vtables" + export LDFLAGS="${LDFLAGS} --target=aarch64-linux-gnu -march=arm64 -fwhole-program-vtables" + export VSCODE_REMOTE_CC=/usr/bin/aarch64-linux-gnu-gcc + export VSCODE_REMOTE_CXX=/usr/bin/aarch64-linux-gnu-g++ + fi + + if [ "$VSCODE_ARCH" == "armhf" ]; then + export CXXFLAGS="${CXXFLAGS} --target=arm-linux-gnueabihf -march=armv7-a -mthumb -mfloat-abi=hard -mfpu=neon -mtune=generic-armv7-a" + export CFLAGS="${CFLAGS} --target=arm-linux-gnueabihf -march=armv7-a -mthumb -mfloat-abi=hard -mfpu=neon -mtune=generic-armv7-a" + export LDFLAGS="${LDFLAGS} --target=arm-linux-gnueabihf -march=armv7-a" + export VSCODE_REMOTE_CC=/usr/bin/arm-linux-gnueabihf-gcc + export VSCODE_REMOTE_CXX=/usr/bin/arm-linux-gnueabihf-g++ fi for i in {1..3}; do # try 3 times, for Terrapin diff --git a/build/azure-pipelines/linux/product-build-linux-server.yml b/build/azure-pipelines/linux/product-build-linux-server.yml index cbda3510d62b3..af04c89f603dc 100644 --- a/build/azure-pipelines/linux/product-build-linux-server.yml +++ b/build/azure-pipelines/linux/product-build-linux-server.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" diff --git a/build/azure-pipelines/linux/snap-build-linux.yml b/build/azure-pipelines/linux/snap-build-linux.yml index 33a80b7439186..1282933495697 100644 --- a/build/azure-pipelines/linux/snap-build-linux.yml +++ b/build/azure-pipelines/linux/snap-build-linux.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: DownloadPipelineArtifact@0 displayName: "Download Pipeline Artifact" diff --git a/build/azure-pipelines/product-compile.yml b/build/azure-pipelines/product-compile.yml index 44364c76beca5..b3cec3a3ab1a5 100644 --- a/build/azure-pipelines/product-compile.yml +++ b/build/azure-pipelines/product-compile.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" diff --git a/build/azure-pipelines/product-release.yml b/build/azure-pipelines/product-release.yml index fa6396b14865a..a108694559533 100644 --- a/build/azure-pipelines/product-release.yml +++ b/build/azure-pipelines/product-release.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureCLI@2 inputs: diff --git a/build/azure-pipelines/publish-types/publish-types.yml b/build/azure-pipelines/publish-types/publish-types.yml index 043bb5141bafe..031fafd4c7581 100644 --- a/build/azure-pipelines/publish-types/publish-types.yml +++ b/build/azure-pipelines/publish-types/publish-types.yml @@ -12,7 +12,7 @@ pool: steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - bash: | TAG_VERSION=$(git describe --tags `git rev-list --tags --max-count=1`) diff --git a/build/azure-pipelines/sdl-scan.yml b/build/azure-pipelines/sdl-scan.yml index 22b754b4df88c..c935a23afd5ba 100644 --- a/build/azure-pipelines/sdl-scan.yml +++ b/build/azure-pipelines/sdl-scan.yml @@ -47,7 +47,7 @@ stages: outputFormat: "pre" - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" @@ -139,7 +139,7 @@ stages: toolMajorVersion: "V2" - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" @@ -191,7 +191,7 @@ stages: if [ -z "$CC" ] || [ -z "$CXX" ]; then # Download clang based on chromium revision used by vscode - curl -s https://raw.githubusercontent.com/chromium/chromium/91.0.4472.164/tools/clang/scripts/update.py | python - --output-dir=$PWD/.build/CR_Clang --host-os=linux + curl -s https://raw.githubusercontent.com/chromium/chromium/96.0.4664.110/tools/clang/scripts/update.py | python - --output-dir=$PWD/.build/CR_Clang --host-os=linux # Download libcxx headers and objects from upstream electron releases DEBUG=libcxx-fetcher \ VSCODE_LIBCXX_OBJECTS_DIR=$PWD/.build/libcxx-objects \ @@ -202,13 +202,13 @@ stages: # Set compiler toolchain export CC=$PWD/.build/CR_Clang/bin/clang export CXX=$PWD/.build/CR_Clang/bin/clang++ - export CXXFLAGS="-nostdinc++ -D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS -isystem$PWD/.build/libcxx_headers/include -isystem$PWD/.build/libcxxabi_headers/include -fPIC -flto=thin -fsplit-lto-unit" + export CXXFLAGS="-nostdinc++ -D__NO_INLINE__ -isystem$PWD/.build/libcxx_headers -isystem$PWD/.build/libcxx_headers/include -isystem$PWD/.build/libcxxabi_headers/include -fPIC -flto=thin -fsplit-lto-unit" export LDFLAGS="-stdlib=libc++ -fuse-ld=lld -flto=thin -fsplit-lto-unit -L$PWD/.build/libcxx-objects -lc++abi" fi if [ "$VSCODE_ARCH" == "x64" ]; then - export VSCODE_REMOTE_CC=$(which gcc-4.8) - export VSCODE_REMOTE_CXX=$(which g++-4.8) + export VSCODE_REMOTE_CC=$(which gcc-4.9) + export VSCODE_REMOTE_CXX=$(which g++-4.9) fi for i in {1..3}; do # try 3 times, for Terrapin diff --git a/build/azure-pipelines/web/product-build-web.yml b/build/azure-pipelines/web/product-build-web.yml index aced8b3076fd3..a33530fd4a50d 100644 --- a/build/azure-pipelines/web/product-build-web.yml +++ b/build/azure-pipelines/web/product-build-web.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: AzureKeyVault@1 displayName: "Azure Key Vault: Get Secrets" diff --git a/build/azure-pipelines/win32/product-build-win32.yml b/build/azure-pipelines/win32/product-build-win32.yml index 6b01f69344b8b..bc8cb32cdd89c 100644 --- a/build/azure-pipelines/win32/product-build-win32.yml +++ b/build/azure-pipelines/win32/product-build-win32.yml @@ -1,7 +1,7 @@ steps: - task: NodeTool@0 inputs: - versionSpec: "14.x" + versionSpec: "16.x" - task: UsePythonVersion@0 inputs: diff --git a/build/lib/layersChecker.js b/build/lib/layersChecker.js index 7f0637af940a8..aaa732c67514e 100644 --- a/build/lib/layersChecker.js +++ b/build/lib/layersChecker.js @@ -53,6 +53,21 @@ const CORE_TYPES = [ 'trimLeft', 'trimRight', 'queueMicrotask', + 'Array', + 'Uint8Array', + 'Uint16Array', + 'Uint32Array', + 'Int8Array', + 'Int16Array', + 'Int32Array', + 'Float32Array', + 'Float64Array', + 'Uint8ClampedArray', + 'BigUint64Array', + 'BigInt64Array', + 'btoa', + 'atob', + 'AbortSignal', 'MessageChannel', 'MessagePort' ]; @@ -89,8 +104,8 @@ const RULES = [ // Common: vs/platform/environment/common/* { target: '**/vs/platform/environment/common/*.ts', - disallowedTypes: [ /* Ignore native types that are defined from here */], allowedTypes: CORE_TYPES, + disallowedTypes: [ /* Ignore native types that are defined from here */], disallowedDefinitions: [ 'lib.dom.d.ts', '@types/node' // no node.js @@ -99,8 +114,8 @@ const RULES = [ // Common: vs/platform/windows/common/windows.ts { target: '**/vs/platform/windows/common/windows.ts', - disallowedTypes: [ /* Ignore native types that are defined from here */], allowedTypes: CORE_TYPES, + disallowedTypes: [ /* Ignore native types that are defined from here */], disallowedDefinitions: [ 'lib.dom.d.ts', '@types/node' // no node.js @@ -109,8 +124,8 @@ const RULES = [ // Common: vs/platform/native/common/native.ts { target: '**/vs/platform/native/common/native.ts', - disallowedTypes: [ /* Ignore native types that are defined from here */], allowedTypes: CORE_TYPES, + disallowedTypes: [ /* Ignore native types that are defined from here */], disallowedDefinitions: [ 'lib.dom.d.ts', '@types/node' // no node.js @@ -145,6 +160,9 @@ const RULES = [ target: '**/vs/**/browser/**', allowedTypes: CORE_TYPES, disallowedTypes: NATIVE_TYPES, + allowedDefinitions: [ + '@types/node/stream/consumers.d.ts' // node.js started to duplicate types from lib.dom.d.ts so we have to account for that + ], disallowedDefinitions: [ '@types/node' // no node.js ] @@ -228,13 +246,20 @@ function checkFile(program, sourceFile, rule) { if (symbol) { const declarations = symbol.declarations; if (Array.isArray(declarations)) { - for (const declaration of declarations) { + DeclarationLoop: for (const declaration of declarations) { if (declaration) { const parent = declaration.parent; if (parent) { const parentSourceFile = parent.getSourceFile(); if (parentSourceFile) { const definitionFileName = parentSourceFile.fileName; + if (rule.allowedDefinitions) { + for (const allowedDefinition of rule.allowedDefinitions) { + if (definitionFileName.indexOf(allowedDefinition) >= 0) { + continue DeclarationLoop; + } + } + } if (rule.disallowedDefinitions) { for (const disallowedDefinition of rule.disallowedDefinitions) { if (definitionFileName.indexOf(disallowedDefinition) >= 0) { diff --git a/build/lib/layersChecker.ts b/build/lib/layersChecker.ts index e62394a405cbe..f3aefc7620332 100644 --- a/build/lib/layersChecker.ts +++ b/build/lib/layersChecker.ts @@ -54,6 +54,21 @@ const CORE_TYPES = [ 'trimLeft', 'trimRight', 'queueMicrotask', + 'Array', + 'Uint8Array', + 'Uint16Array', + 'Uint32Array', + 'Int8Array', + 'Int16Array', + 'Int32Array', + 'Float32Array', + 'Float64Array', + 'Uint8ClampedArray', + 'BigUint64Array', + 'BigInt64Array', + 'btoa', + 'atob', + 'AbortSignal', 'MessageChannel', 'MessagePort' ]; @@ -96,8 +111,8 @@ const RULES = [ // Common: vs/platform/environment/common/* { target: '**/vs/platform/environment/common/*.ts', - disallowedTypes: [/* Ignore native types that are defined from here */], allowedTypes: CORE_TYPES, + disallowedTypes: [/* Ignore native types that are defined from here */], disallowedDefinitions: [ 'lib.dom.d.ts', // no DOM '@types/node' // no node.js @@ -107,8 +122,8 @@ const RULES = [ // Common: vs/platform/windows/common/windows.ts { target: '**/vs/platform/windows/common/windows.ts', - disallowedTypes: [/* Ignore native types that are defined from here */], allowedTypes: CORE_TYPES, + disallowedTypes: [/* Ignore native types that are defined from here */], disallowedDefinitions: [ 'lib.dom.d.ts', // no DOM '@types/node' // no node.js @@ -118,8 +133,8 @@ const RULES = [ // Common: vs/platform/native/common/native.ts { target: '**/vs/platform/native/common/native.ts', - disallowedTypes: [/* Ignore native types that are defined from here */], allowedTypes: CORE_TYPES, + disallowedTypes: [/* Ignore native types that are defined from here */], disallowedDefinitions: [ 'lib.dom.d.ts', // no DOM '@types/node' // no node.js @@ -158,6 +173,9 @@ const RULES = [ target: '**/vs/**/browser/**', allowedTypes: CORE_TYPES, disallowedTypes: NATIVE_TYPES, + allowedDefinitions: [ + '@types/node/stream/consumers.d.ts' // node.js started to duplicate types from lib.dom.d.ts so we have to account for that + ], disallowedDefinitions: [ '@types/node' // no node.js ] @@ -231,6 +249,7 @@ interface IRule { target: string; skip?: boolean; allowedTypes?: string[]; + allowedDefinitions?: string[]; disallowedDefinitions?: string[]; disallowedTypes?: string[]; } @@ -264,13 +283,20 @@ function checkFile(program: ts.Program, sourceFile: ts.SourceFile, rule: IRule) if (symbol) { const declarations = symbol.declarations; if (Array.isArray(declarations)) { - for (const declaration of declarations) { + DeclarationLoop: for (const declaration of declarations) { if (declaration) { const parent = declaration.parent; if (parent) { const parentSourceFile = parent.getSourceFile(); if (parentSourceFile) { const definitionFileName = parentSourceFile.fileName; + if (rule.allowedDefinitions) { + for (const allowedDefinition of rule.allowedDefinitions) { + if (definitionFileName.indexOf(allowedDefinition) >= 0) { + continue DeclarationLoop; + } + } + } if (rule.disallowedDefinitions) { for (const disallowedDefinition of rule.disallowedDefinitions) { if (definitionFileName.indexOf(disallowedDefinition) >= 0) { diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js index b0a459959d65e..bf2181cf9f79a 100644 --- a/build/npm/postinstall.js +++ b/build/npm/postinstall.js @@ -48,11 +48,6 @@ for (let dir of dirs) { continue; } - if (/^remote/.test(dir) && process.platform === 'linux' && (process.arch === 'x64' || process.env['npm_config_arch'] === 'x64')) { - // linux x64: do not execute `yarn` on remote folder - continue; - } - if (dir === 'build/lib/watch') { // node modules for watching, specific to host node version, not electron yarnInstallBuildDependencies(); @@ -67,6 +62,7 @@ for (let dir of dirs) { if (process.env['VSCODE_REMOTE_CC']) { env['CC'] = process.env['VSCODE_REMOTE_CC']; } if (process.env['VSCODE_REMOTE_CXX']) { env['CXX'] = process.env['VSCODE_REMOTE_CXX']; } if (process.env['CXXFLAGS']) { delete env['CXXFLAGS']; } + if (process.env['CFLAGS']) { delete env['CFLAGS']; } if (process.env['LDFLAGS']) { delete env['LDFLAGS']; } if (process.env['VSCODE_REMOTE_NODE_GYP']) { env['npm_config_node_gyp'] = process.env['VSCODE_REMOTE_NODE_GYP']; } opts = { env }; diff --git a/build/package.json b/build/package.json index 456b7e87ed55c..eb85be5acaf08 100644 --- a/build/package.json +++ b/build/package.json @@ -29,7 +29,7 @@ "@types/minimist": "^1.2.1", "@types/mkdirp": "^1.0.1", "@types/mocha": "^8.2.0", - "@types/node": "14.x", + "@types/node": "16.x", "@types/p-limit": "^2.2.0", "@types/plist": "^3.0.2", "@types/pump": "^1.0.1", diff --git a/build/yarn.lock b/build/yarn.lock index ddb3a8969a42c..3ad6be82d9aea 100644 --- a/build/yarn.lock +++ b/build/yarn.lock @@ -507,10 +507,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.51.tgz#b31d716fb8d58eeb95c068a039b9b6292817d5fb" integrity sha512-El3+WJk2D/ppWNd2X05aiP5l2k4EwF7KwheknQZls+I26eSICoWRhRIJ56jGgw2dqNGQ5LtNajmBU2ajS28EvQ== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/p-limit@^2.2.0": version "2.2.0" diff --git a/cgmanifest.json b/cgmanifest.json index 62bb0a3718d42..268b30dc5048d 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -6,7 +6,7 @@ "git": { "name": "chromium", "repositoryUrl": "https://chromium.googlesource.com/chromium/src", - "commitHash": "8a33e05d162c4f39afa2dcb150e8c2548aa4ccea" + "commitHash": "da1918b52890268754b96fdbca4ae9a79bd2fe11" } }, "licenseDetail": [ @@ -40,7 +40,7 @@ "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ], "isOnlyProductionDependency": true, - "version": "91.0.4472.164" + "version": "96.0.4664.110" }, { "component": { @@ -48,11 +48,11 @@ "git": { "name": "nodejs", "repositoryUrl": "https://github.com/nodejs/node", - "commitHash": "bd60e93357a118204ea238d94e7a9e4209d93062" + "commitHash": "711e073596f29b047086e2f3d4ab3706b98462f7" } }, "isOnlyProductionDependency": true, - "version": "14.16.0" + "version": "16.9.1" }, { "component": { @@ -60,12 +60,12 @@ "git": { "name": "electron", "repositoryUrl": "https://github.com/electron/electron", - "commitHash": "e64966641c6aa10450ae1122efd3dac1f29eba21" + "commitHash": "b1ffac5969d0533a479794b909cab7429299bf00" } }, "isOnlyProductionDependency": true, "license": "MIT", - "version": "13.5.1" + "version": "16.0.8" }, { "component": { diff --git a/extensions/configuration-editing/package.json b/extensions/configuration-editing/package.json index a7b71cd05c84f..f8dae16b764fe 100644 --- a/extensions/configuration-editing/package.json +++ b/extensions/configuration-editing/package.json @@ -144,7 +144,7 @@ ] }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/configuration-editing/yarn.lock b/extensions/configuration-editing/yarn.lock index d4882d39e4b4b..f7ac959fc0937 100644 --- a/extensions/configuration-editing/yarn.lock +++ b/extensions/configuration-editing/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== jsonc-parser@^2.2.1: version "2.2.1" diff --git a/extensions/css-language-features/client/src/node/nodeFs.ts b/extensions/css-language-features/client/src/node/nodeFs.ts index 0b5720188847c..e0d3f9e140385 100644 --- a/extensions/css-language-features/client/src/node/nodeFs.ts +++ b/extensions/css-language-features/client/src/node/nodeFs.ts @@ -14,7 +14,7 @@ export function getNodeFSRequestService(): RequestService { } } return { - getContent(location: string, encoding?: string) { + getContent(location: string, encoding?: BufferEncoding) { ensureFileUri(location); return new Promise((c, e) => { const uri = Uri.parse(location); diff --git a/extensions/css-language-features/package.json b/extensions/css-language-features/package.json index bd8db6d02596d..202fe248ad9db 100644 --- a/extensions/css-language-features/package.json +++ b/extensions/css-language-features/package.json @@ -852,7 +852,7 @@ "vscode-uri": "^3.0.3" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/css-language-features/server/package.json b/extensions/css-language-features/server/package.json index e3f0a5031f60e..38bac1f1a3a10 100644 --- a/extensions/css-language-features/server/package.json +++ b/extensions/css-language-features/server/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@types/mocha": "^8.2.0", - "@types/node": "14.x" + "@types/node": "16.x" }, "scripts": { "compile": "gulp compile-extension:css-language-features-server", diff --git a/extensions/css-language-features/server/src/node/nodeFs.ts b/extensions/css-language-features/server/src/node/nodeFs.ts index c72617e3af100..35e55622dc9e3 100644 --- a/extensions/css-language-features/server/src/node/nodeFs.ts +++ b/extensions/css-language-features/server/src/node/nodeFs.ts @@ -16,7 +16,7 @@ export function getNodeFSRequestService(): RequestService { } } return { - getContent(location: string, encoding?: string) { + getContent(location: string, encoding?: BufferEncoding) { ensureFileUri(location); return new Promise((c, e) => { const uri = Uri.parse(location); diff --git a/extensions/css-language-features/server/yarn.lock b/extensions/css-language-features/server/yarn.lock index 18bba8bfc63f2..bf28937ff5005 100644 --- a/extensions/css-language-features/server/yarn.lock +++ b/extensions/css-language-features/server/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44" integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== vscode-css-languageservice@^5.1.12: version "5.1.12" diff --git a/extensions/css-language-features/yarn.lock b/extensions/css-language-features/yarn.lock index 0875cabea4dca..60ba7c2dcc3ee 100644 --- a/extensions/css-language-features/yarn.lock +++ b/extensions/css-language-features/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== balanced-match@^1.0.0: version "1.0.0" diff --git a/extensions/debug-auto-launch/package.json b/extensions/debug-auto-launch/package.json index b0c765fa2cc21..82c9054c456ac 100644 --- a/extensions/debug-auto-launch/package.json +++ b/extensions/debug-auto-launch/package.json @@ -36,7 +36,7 @@ "vscode-nls": "^4.0.0" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "prettier": { "printWidth": 100, diff --git a/extensions/debug-auto-launch/yarn.lock b/extensions/debug-auto-launch/yarn.lock index f7a30098ef45d..22c406bc73f73 100644 --- a/extensions/debug-auto-launch/yarn.lock +++ b/extensions/debug-auto-launch/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== vscode-nls@^4.0.0: version "4.0.0" diff --git a/extensions/debug-server-ready/package.json b/extensions/debug-server-ready/package.json index 64aa227aa5319..29cee88c0c540 100644 --- a/extensions/debug-server-ready/package.json +++ b/extensions/debug-server-ready/package.json @@ -153,7 +153,7 @@ "vscode-nls": "^4.0.0" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/debug-server-ready/yarn.lock b/extensions/debug-server-ready/yarn.lock index f7a30098ef45d..22c406bc73f73 100644 --- a/extensions/debug-server-ready/yarn.lock +++ b/extensions/debug-server-ready/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== vscode-nls@^4.0.0: version "4.0.0" diff --git a/extensions/emmet/package.json b/extensions/emmet/package.json index 4b303046a2674..659be1e0fce57 100644 --- a/extensions/emmet/package.json +++ b/extensions/emmet/package.json @@ -500,7 +500,7 @@ "deps": "yarn add @vscode/emmet-helper" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "dependencies": { "@emmetio/abbreviation": "^2.2.0", diff --git a/extensions/emmet/yarn.lock b/extensions/emmet/yarn.lock index 84ad50583e824..a8d2f7f2649c8 100644 --- a/extensions/emmet/yarn.lock +++ b/extensions/emmet/yarn.lock @@ -53,10 +53,10 @@ resolved "https://registry.yarnpkg.com/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz#46cffea119a0a003312a21c2d9b5628cb5fcd442" integrity sha1-Rs/+oRmgoAMxKiHC2bVijLX81EI= -"@types/node@14.x": - version "14.18.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.0.tgz#98df2397f6936bfbff4f089e40e06fa5dd88d32a" - integrity sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@vscode/emmet-helper@^2.3.0": version "2.8.3" diff --git a/extensions/extension-editing/package.json b/extensions/extension-editing/package.json index dbc18aa142be8..abceee2bc7d4c 100644 --- a/extensions/extension-editing/package.json +++ b/extensions/extension-editing/package.json @@ -68,7 +68,7 @@ }, "devDependencies": { "@types/markdown-it": "0.0.2", - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/extension-editing/yarn.lock b/extensions/extension-editing/yarn.lock index 171c0baaa6f81..ac87f5e268631 100644 --- a/extensions/extension-editing/yarn.lock +++ b/extensions/extension-editing/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.2.tgz#5d9ad19e6e6508cdd2f2596df86fd0aade598660" integrity sha1-XZrRnm5lCM3S8llt+G/Qqt5ZhmA= -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/node@^6.0.46": version "6.0.78" diff --git a/extensions/git-base/package.json b/extensions/git-base/package.json index 3fc19c587ff20..acc95e1316c7f 100644 --- a/extensions/git-base/package.json +++ b/extensions/git-base/package.json @@ -102,7 +102,7 @@ "vscode-nls": "^4.0.0" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/git-base/yarn.lock b/extensions/git-base/yarn.lock index 22e3e094fdc5d..3244e2ea6674e 100644 --- a/extensions/git-base/yarn.lock +++ b/extensions/git-base/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.17.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.33.tgz#011ee28e38dc7aee1be032ceadf6332a0ab15b12" - integrity sha512-noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g== +"@types/node@16.x": + version "16.11.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.21.tgz#474d7589a30afcf5291f59bd49cca9ad171ffde4" + integrity sha512-Pf8M1XD9i1ksZEcCP8vuSNwooJ/bZapNmIzpmsMaL+jMI+8mEYU3PKvs+xDNuQcJWF/x24WzY4qxLtB0zNow9A== vscode-nls@^4.0.0: version "4.1.2" diff --git a/extensions/git/package.json b/extensions/git/package.json index 1ba9c1de4a2e9..800563a808294 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -2449,7 +2449,7 @@ "@types/byline": "4.2.31", "@types/file-type": "^5.2.1", "@types/mocha": "^8.2.0", - "@types/node": "14.x", + "@types/node": "16.x", "@types/which": "^1.0.28" }, "repository": { diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index c7b4e4f1b979b..3708d2e173a1b 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -7,6 +7,7 @@ import { promises as fs, exists, realpath } from 'fs'; import * as path from 'path'; import * as os from 'os'; import * as cp from 'child_process'; +import { fileURLToPath } from 'url'; import * as which from 'which'; import { EventEmitter } from 'events'; import * as iconv from '@vscode/iconv-lite-umd'; @@ -605,13 +606,27 @@ export class Git { GIT_PAGER: 'cat' }); - if (options.cwd) { - options.cwd = sanitizePath(options.cwd); + const cwd = this.getCwd(options); + if (cwd) { + options.cwd = sanitizePath(cwd); } return cp.spawn(this.path, args, options); } + private getCwd(options: SpawnOptions): string | undefined { + const cwd = options.cwd; + if (typeof cwd === 'undefined' || typeof cwd === 'string') { + return cwd; + } + + if (cwd.protocol === 'file:') { + return fileURLToPath(cwd); + } + + return undefined; + } + private log(output: string): void { this._onOutput.emit('log', output); } diff --git a/extensions/git/yarn.lock b/extensions/git/yarn.lock index 8c832b81988a7..f69be195555df 100644 --- a/extensions/git/yarn.lock +++ b/extensions/git/yarn.lock @@ -26,10 +26,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.51.tgz#b31d716fb8d58eeb95c068a039b9b6292817d5fb" integrity sha512-El3+WJk2D/ppWNd2X05aiP5l2k4EwF7KwheknQZls+I26eSICoWRhRIJ56jGgw2dqNGQ5LtNajmBU2ajS28EvQ== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/which@^1.0.28": version "1.0.28" diff --git a/extensions/github-authentication/package.json b/extensions/github-authentication/package.json index a3e43f3c02013..15125363872aa 100644 --- a/extensions/github-authentication/package.json +++ b/extensions/github-authentication/package.json @@ -65,7 +65,7 @@ "vscode-tas-client": "^0.1.22" }, "devDependencies": { - "@types/node": "14.x", + "@types/node": "16.x", "@types/node-fetch": "^2.5.7", "@types/uuid": "8.0.0" }, diff --git a/extensions/github-authentication/yarn.lock b/extensions/github-authentication/yarn.lock index f9602e4369f2b..fb2e57d92b521 100644 --- a/extensions/github-authentication/yarn.lock +++ b/extensions/github-authentication/yarn.lock @@ -15,10 +15,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.5.tgz#3d03acd3b3414cf67faf999aed11682ed121f22b" integrity sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/uuid@8.0.0": version "8.0.0" diff --git a/extensions/github/package.json b/extensions/github/package.json index 7c0013fd7a8a4..f86f98683afe0 100644 --- a/extensions/github/package.json +++ b/extensions/github/package.json @@ -80,7 +80,7 @@ "vscode-nls": "^4.1.2" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/github/yarn.lock b/extensions/github/yarn.lock index fabc2469c44cc..9933736b08e53 100644 --- a/extensions/github/yarn.lock +++ b/extensions/github/yarn.lock @@ -99,10 +99,10 @@ dependencies: "@types/node" ">= 8" -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/node@>= 8": version "14.0.23" diff --git a/extensions/grunt/package.json b/extensions/grunt/package.json index 7e5c605ec00ff..8dd9eced5307b 100644 --- a/extensions/grunt/package.json +++ b/extensions/grunt/package.json @@ -20,7 +20,7 @@ "vscode-nls": "^4.0.0" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "main": "./out/main", "activationEvents": [ diff --git a/extensions/grunt/yarn.lock b/extensions/grunt/yarn.lock index f7a30098ef45d..22c406bc73f73 100644 --- a/extensions/grunt/yarn.lock +++ b/extensions/grunt/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== vscode-nls@^4.0.0: version "4.0.0" diff --git a/extensions/gulp/package.json b/extensions/gulp/package.json index 995da7fbe5d3a..8352957083e37 100644 --- a/extensions/gulp/package.json +++ b/extensions/gulp/package.json @@ -20,7 +20,7 @@ "vscode-nls": "^4.0.0" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "main": "./out/main", "activationEvents": [ diff --git a/extensions/gulp/yarn.lock b/extensions/gulp/yarn.lock index f7a30098ef45d..22c406bc73f73 100644 --- a/extensions/gulp/yarn.lock +++ b/extensions/gulp/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== vscode-nls@^4.0.0: version "4.0.0" diff --git a/extensions/html-language-features/package.json b/extensions/html-language-features/package.json index 5f348e1128661..20fd71e95aee5 100644 --- a/extensions/html-language-features/package.json +++ b/extensions/html-language-features/package.json @@ -267,7 +267,7 @@ "vscode-uri": "^3.0.3" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/html-language-features/server/package.json b/extensions/html-language-features/server/package.json index 35aedc3f1041d..95a9cedc40612 100644 --- a/extensions/html-language-features/server/package.json +++ b/extensions/html-language-features/server/package.json @@ -18,7 +18,7 @@ }, "devDependencies": { "@types/mocha": "^8.2.0", - "@types/node": "14.x" + "@types/node": "16.x" }, "scripts": { "compile": "npx gulp compile-extension:html-language-features-server", diff --git a/extensions/html-language-features/server/yarn.lock b/extensions/html-language-features/server/yarn.lock index a89c3505d8c88..cce214f35467f 100644 --- a/extensions/html-language-features/server/yarn.lock +++ b/extensions/html-language-features/server/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44" integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== vscode-css-languageservice@^5.1.12: version "5.1.12" diff --git a/extensions/html-language-features/yarn.lock b/extensions/html-language-features/yarn.lock index 5a834689bfa2b..f9db6d421a77c 100644 --- a/extensions/html-language-features/yarn.lock +++ b/extensions/html-language-features/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@vscode/extension-telemetry@0.4.6": version "0.4.6" diff --git a/extensions/jake/package.json b/extensions/jake/package.json index 4bb8793f3ee9a..0e5ebc4ea8b38 100644 --- a/extensions/jake/package.json +++ b/extensions/jake/package.json @@ -20,7 +20,7 @@ "vscode-nls": "^4.0.0" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "main": "./out/main", "activationEvents": [ diff --git a/extensions/jake/yarn.lock b/extensions/jake/yarn.lock index f7a30098ef45d..22c406bc73f73 100644 --- a/extensions/jake/yarn.lock +++ b/extensions/jake/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== vscode-nls@^4.0.0: version "4.0.0" diff --git a/extensions/json-language-features/package.json b/extensions/json-language-features/package.json index 983230c292857..520cb43cb5aa6 100644 --- a/extensions/json-language-features/package.json +++ b/extensions/json-language-features/package.json @@ -147,7 +147,7 @@ "vscode-nls": "^5.0.0" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/json-language-features/server/package.json b/extensions/json-language-features/server/package.json index ab5a28f62b74f..65cd7dc407c29 100644 --- a/extensions/json-language-features/server/package.json +++ b/extensions/json-language-features/server/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "@types/mocha": "^8.2.0", - "@types/node": "14.x" + "@types/node": "16.x" }, "scripts": { "prepublishOnly": "npm run clean && npm run compile", diff --git a/extensions/json-language-features/server/src/node/jsonServerMain.ts b/extensions/json-language-features/server/src/node/jsonServerMain.ts index 4cb387095aa6a..ad1ae439e599f 100644 --- a/extensions/json-language-features/server/src/node/jsonServerMain.ts +++ b/extensions/json-language-features/server/src/node/jsonServerMain.ts @@ -36,7 +36,7 @@ function getHTTPRequestService(): RequestService { function getFileRequestService(): RequestService { return { - getContent(location: string, encoding?: string) { + getContent(location: string, encoding?: BufferEncoding) { return new Promise((c, e) => { const uri = Uri.parse(location); fs.readFile(uri.fsPath, encoding, (err, buf) => { diff --git a/extensions/json-language-features/server/yarn.lock b/extensions/json-language-features/server/yarn.lock index ae20eed06c065..20cebe1fe277a 100644 --- a/extensions/json-language-features/server/yarn.lock +++ b/extensions/json-language-features/server/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44" integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== jsonc-parser@^3.0.0: version "3.0.0" diff --git a/extensions/json-language-features/yarn.lock b/extensions/json-language-features/yarn.lock index 9f393dd545306..5315a0e531569 100644 --- a/extensions/json-language-features/yarn.lock +++ b/extensions/json-language-features/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@vscode/extension-telemetry@0.4.6": version "0.4.6" diff --git a/extensions/merge-conflict/package.json b/extensions/merge-conflict/package.json index 3aa6b16014d82..128538a8ad9e4 100644 --- a/extensions/merge-conflict/package.json +++ b/extensions/merge-conflict/package.json @@ -159,7 +159,7 @@ "vscode-nls": "^5.0.0" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/merge-conflict/yarn.lock b/extensions/merge-conflict/yarn.lock index ede1d9c77362d..699f1238a9bfa 100644 --- a/extensions/merge-conflict/yarn.lock +++ b/extensions/merge-conflict/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== vscode-nls@^5.0.0: version "5.0.0" diff --git a/extensions/microsoft-authentication/package.json b/extensions/microsoft-authentication/package.json index aed500cc87061..82fecbf5e9192 100644 --- a/extensions/microsoft-authentication/package.json +++ b/extensions/microsoft-authentication/package.json @@ -47,7 +47,7 @@ "watch-web": "npx webpack-cli --config extension-browser.webpack.config --mode none --watch --info-verbosity verbose" }, "devDependencies": { - "@types/node": "14.x", + "@types/node": "16.x", "@types/node-fetch": "^2.5.7", "@types/randombytes": "^2.0.0", "@types/sha.js": "^2.4.0", diff --git a/extensions/microsoft-authentication/yarn.lock b/extensions/microsoft-authentication/yarn.lock index ca07545f9e3e3..459cfdb732424 100644 --- a/extensions/microsoft-authentication/yarn.lock +++ b/extensions/microsoft-authentication/yarn.lock @@ -15,10 +15,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.23.tgz#676fa0883450ed9da0bb24156213636290892806" integrity sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/randombytes@^2.0.0": version "2.0.0" diff --git a/extensions/npm/package.json b/extensions/npm/package.json index b674260dd5bb9..6df1a4835e772 100644 --- a/extensions/npm/package.json +++ b/extensions/npm/package.json @@ -28,7 +28,7 @@ }, "devDependencies": { "@types/minimatch": "^3.0.3", - "@types/node": "14.x", + "@types/node": "16.x", "@types/which": "^2.0.0" }, "resolutions": { diff --git a/extensions/npm/yarn.lock b/extensions/npm/yarn.lock index 4728dbc860c2a..bba9ffdbf3955 100644 --- a/extensions/npm/yarn.lock +++ b/extensions/npm/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/which@^2.0.0": version "2.0.0" diff --git a/extensions/php-language-features/package.json b/extensions/php-language-features/package.json index 03176a0557353..8c0d484535b6e 100644 --- a/extensions/php-language-features/package.json +++ b/extensions/php-language-features/package.json @@ -78,7 +78,7 @@ "which": "^2.0.2" }, "devDependencies": { - "@types/node": "14.x", + "@types/node": "16.x", "@types/which": "^2.0.0" }, "repository": { diff --git a/extensions/php-language-features/yarn.lock b/extensions/php-language-features/yarn.lock index 09b31c8012378..8dec3aadc638f 100644 --- a/extensions/php-language-features/yarn.lock +++ b/extensions/php-language-features/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/which@^2.0.0": version "2.0.0" diff --git a/extensions/typescript-language-features/package.json b/extensions/typescript-language-features/package.json index f877075451b5f..73c434dec1753 100644 --- a/extensions/typescript-language-features/package.json +++ b/extensions/typescript-language-features/package.json @@ -43,7 +43,7 @@ "vscode-uri": "^3.0.3" }, "devDependencies": { - "@types/node": "14.x", + "@types/node": "16.x", "@types/semver": "^5.5.0" }, "scripts": { diff --git a/extensions/typescript-language-features/src/extension.ts b/extensions/typescript-language-features/src/extension.ts index 523b4c840c30e..e6ae13e5daab9 100644 --- a/extensions/typescript-language-features/src/extension.ts +++ b/extensions/typescript-language-features/src/extension.ts @@ -66,5 +66,5 @@ export function activate( } export function deactivate() { - fs.rmdirSync(temp.getInstanceTempDir(), { recursive: true }); + fs.rmSync(temp.getInstanceTempDir(), { recursive: true, force: true }); } diff --git a/extensions/typescript-language-features/yarn.lock b/extensions/typescript-language-features/yarn.lock index 40d17f3173a92..d388994e0bc41 100644 --- a/extensions/typescript-language-features/yarn.lock +++ b/extensions/typescript-language-features/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/semver@^5.5.0": version "5.5.0" diff --git a/extensions/vscode-api-tests/package.json b/extensions/vscode-api-tests/package.json index 26b7b50f4f1f6..1f9007e1fcc89 100644 --- a/extensions/vscode-api-tests/package.json +++ b/extensions/vscode-api-tests/package.json @@ -202,7 +202,7 @@ }, "devDependencies": { "@types/mocha": "^8.2.0", - "@types/node": "14.x" + "@types/node": "16.x" }, "repository": { "type": "git", diff --git a/extensions/vscode-api-tests/yarn.lock b/extensions/vscode-api-tests/yarn.lock index b54d6b4883650..13c5c61dbd946 100644 --- a/extensions/vscode-api-tests/yarn.lock +++ b/extensions/vscode-api-tests/yarn.lock @@ -7,7 +7,7 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44" integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== diff --git a/extensions/vscode-colorize-tests/package.json b/extensions/vscode-colorize-tests/package.json index b27439bf8b66f..e2517c811f2bc 100644 --- a/extensions/vscode-colorize-tests/package.json +++ b/extensions/vscode-colorize-tests/package.json @@ -20,7 +20,7 @@ "jsonc-parser": "2.2.1" }, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "contributes": { "semanticTokenTypes": [ diff --git a/extensions/vscode-colorize-tests/yarn.lock b/extensions/vscode-colorize-tests/yarn.lock index 15725cff50295..44d4327771ea8 100644 --- a/extensions/vscode-colorize-tests/yarn.lock +++ b/extensions/vscode-colorize-tests/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== jsonc-parser@2.2.1: version "2.2.1" diff --git a/extensions/vscode-custom-editor-tests/package.json b/extensions/vscode-custom-editor-tests/package.json index 778f5c56cf08e..1a17bd5d6cbb0 100644 --- a/extensions/vscode-custom-editor-tests/package.json +++ b/extensions/vscode-custom-editor-tests/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@types/mocha": "^8.2.0", - "@types/node": "14.x", + "@types/node": "16.x", "@types/p-limit": "^2.2.0" }, "contributes": { diff --git a/extensions/vscode-custom-editor-tests/yarn.lock b/extensions/vscode-custom-editor-tests/yarn.lock index 52588b9282027..2943060a07846 100644 --- a/extensions/vscode-custom-editor-tests/yarn.lock +++ b/extensions/vscode-custom-editor-tests/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/p-limit@^2.2.0": version "2.2.0" diff --git a/extensions/vscode-notebook-tests/package.json b/extensions/vscode-notebook-tests/package.json index 3cf93067634dd..e0a672ca17933 100644 --- a/extensions/vscode-notebook-tests/package.json +++ b/extensions/vscode-notebook-tests/package.json @@ -33,7 +33,7 @@ }, "dependencies": {}, "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "contributes": { "commands": [ diff --git a/extensions/vscode-notebook-tests/yarn.lock b/extensions/vscode-notebook-tests/yarn.lock index 995b2c2f8b322..e724e7fffa317 100644 --- a/extensions/vscode-notebook-tests/yarn.lock +++ b/extensions/vscode-notebook-tests/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== diff --git a/extensions/vscode-test-resolver/package.json b/extensions/vscode-test-resolver/package.json index 37fdefbfe2a6f..da90e7e3809b5 100644 --- a/extensions/vscode-test-resolver/package.json +++ b/extensions/vscode-test-resolver/package.json @@ -32,7 +32,7 @@ ], "main": "./out/extension", "devDependencies": { - "@types/node": "14.x" + "@types/node": "16.x" }, "capabilities": { "untrustedWorkspaces": { diff --git a/extensions/vscode-test-resolver/src/util/processes.ts b/extensions/vscode-test-resolver/src/util/processes.ts index 3bc1272552203..f16d0678c5268 100644 --- a/extensions/vscode-test-resolver/src/util/processes.ts +++ b/extensions/vscode-test-resolver/src/util/processes.ts @@ -16,14 +16,14 @@ export function terminateProcess(p: cp.ChildProcess, extensionPath: string): Ter const options: any = { stdio: ['pipe', 'pipe', 'ignore'] }; - cp.execFileSync('taskkill', ['/T', '/F', '/PID', p.pid.toString()], options); + cp.execFileSync('taskkill', ['/T', '/F', '/PID', p.pid!.toString()], options); } catch (err) { return { success: false, error: err }; } } else if (process.platform === 'darwin' || process.platform === 'linux') { try { const cmd = path.join(extensionPath, 'scripts', 'terminateProcess.sh'); - const result = cp.spawnSync(cmd, [p.pid.toString()]); + const result = cp.spawnSync(cmd, [p.pid!.toString()]); if (result.error) { return { success: false, error: result.error }; } diff --git a/extensions/vscode-test-resolver/yarn.lock b/extensions/vscode-test-resolver/yarn.lock index 995b2c2f8b322..e724e7fffa317 100644 --- a/extensions/vscode-test-resolver/yarn.lock +++ b/extensions/vscode-test-resolver/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== diff --git a/package.json b/package.json index 048f960a480ef..5a11c1606a38a 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@vscode/debugprotocol": "1.51.0", "@vscode/iconv-lite-umd": "0.7.0", "@vscode/ripgrep": "^1.14.1", - "@vscode/sqlite3": "4.0.12", + "@vscode/sqlite3": "5.0.7", "@vscode/sudo-prompt": "9.3.1", "@vscode/vscode-languagedetection": "1.0.21", "applicationinsights": "1.4.2", @@ -109,7 +109,7 @@ "@types/keytar": "^4.4.0", "@types/minimist": "^1.2.1", "@types/mocha": "^8.2.0", - "@types/node": "14.x", + "@types/node": "16.x", "@types/sinon": "^10.0.2", "@types/sinon-test": "^2.4.2", "@types/trusted-types": "^1.0.6", @@ -135,7 +135,7 @@ "cssnano": "^4.1.11", "debounce": "^1.0.0", "deemon": "^1.4.0", - "electron": "13.5.1", + "electron": "16.0.8", "eslint": "8.7.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-jsdoc": "^19.1.0", diff --git a/remote/.yarnrc b/remote/.yarnrc index bce4202aea7c9..7ed923132140b 100644 --- a/remote/.yarnrc +++ b/remote/.yarnrc @@ -1,3 +1,4 @@ disturl "http://nodejs.org/dist" -target "14.16.0" +target "16.9.1" runtime "node" +build_from_source "true" diff --git a/scripts/test-integration.sh b/scripts/test-integration.sh index 3c4e2989a5cbd..2fb82e34740fd 100755 --- a/scripts/test-integration.sh +++ b/scripts/test-integration.sh @@ -46,7 +46,6 @@ else # Configuration for more verbose output export VSCODE_CLI=1 - export ELECTRON_ENABLE_STACK_DUMPING=1 export ELECTRON_ENABLE_LOGGING=1 echo "Storing crash reports into '$VSCODECRASHDIR'." diff --git a/scripts/test-remote-integration.sh b/scripts/test-remote-integration.sh index 7515940b5d454..39c36592e2404 100755 --- a/scripts/test-remote-integration.sh +++ b/scripts/test-remote-integration.sh @@ -60,7 +60,6 @@ else # Configuration for more verbose output export VSCODE_CLI=1 - export ELECTRON_ENABLE_STACK_DUMPING=1 export ELECTRON_ENABLE_LOGGING=1 # Running from a build, we need to enable the vscode-test-resolver extension diff --git a/src/bootstrap-fork.js b/src/bootstrap-fork.js index c11168a2bc7c2..3acef21ad527f 100644 --- a/src/bootstrap-fork.js +++ b/src/bootstrap-fork.js @@ -37,9 +37,6 @@ if (process.env['VSCODE_PARENT_PID']) { terminateWhenParentTerminates(); } -// Configure Crash Reporter -configureCrashReporter(); - // Load AMD entry point require('./bootstrap-amd').load(process.env['VSCODE_AMD_ENTRYPOINT']); @@ -266,18 +263,4 @@ function terminateWhenParentTerminates() { } } -function configureCrashReporter() { - const crashReporterOptionsRaw = process.env['VSCODE_CRASH_REPORTER_START_OPTIONS']; - if (typeof crashReporterOptionsRaw === 'string') { - try { - const crashReporterOptions = JSON.parse(crashReporterOptionsRaw); - if (crashReporterOptions && process['crashReporter'] /* Electron only */) { - process['crashReporter'].start(crashReporterOptions); - } - } catch (error) { - console.error(error); - } - } -} - //#endregion diff --git a/src/main.js b/src/main.js index 472375c286e90..c9347d4516b7a 100644 --- a/src/main.js +++ b/src/main.js @@ -26,8 +26,6 @@ const { stripComments } = require('./vs/base/common/stripComments'); const product = require('../product.json'); const { app, protocol, crashReporter } = require('electron'); -app.allowRendererProcessReuse = false; - // Enable portable support const portable = bootstrapNode.configurePortable(product); @@ -174,10 +172,7 @@ function configureCommandlineSwitchesSync(cliArgs) { 'enable-proposed-api', // Log level to use. Default is 'info'. Allowed values are 'critical', 'error', 'warn', 'info', 'debug', 'trace', 'off'. - 'log-level', - - // Enables render process reuse. Default value is 'false'. See https://github.com/electron/electron/issues/18397 - 'enable-render-process-reuse' + 'log-level' ]; // Read argv config @@ -222,12 +217,6 @@ function configureCommandlineSwitchesSync(cliArgs) { process.argv.push('--log', argvValue); } break; - - case 'enable-render-process-reuse': - if (argvValue === true) { - app.allowRendererProcessReuse = true; - } - break; } } }); diff --git a/src/vs/base/node/languagePacks.js b/src/vs/base/node/languagePacks.js index 5c14fade87895..f99d3808de5a4 100644 --- a/src/vs/base/node/languagePacks.js +++ b/src/vs/base/node/languagePacks.js @@ -46,7 +46,7 @@ * @returns {Promise} */ function rimraf(location) { - return new Promise((c, e) => fs.rmdir(location, { recursive: true }, err => (err && err.code !== 'ENOENT') ? e(err) : c())); + return new Promise((c, e) => fs.rm(location, { recursive: true, force: true, maxRetries: 3 }, err => err ? e(err) : c())); } /** diff --git a/src/vs/base/node/pfs.ts b/src/vs/base/node/pfs.ts index 683d3eb9c65d3..c431b5af0c099 100644 --- a/src/vs/base/node/pfs.ts +++ b/src/vs/base/node/pfs.ts @@ -43,7 +43,7 @@ async function rimraf(path: string, mode = RimRafMode.UNLINK): Promise { throw new Error('rimraf - will refuse to recursively delete root'); } - // delete: via rmDir + // delete: via rm if (mode === RimRafMode.UNLINK) { return rimrafUnlink(path); } @@ -79,7 +79,7 @@ async function rimrafMove(path: string): Promise { } async function rimrafUnlink(path: string): Promise { - return Promises.rmdir(path, { recursive: true, maxRetries: 3 }); + return promisify(fs.rm)(path, { recursive: true, force: true, maxRetries: 3 }); } export function rimrafSync(path: string): void { @@ -87,7 +87,7 @@ export function rimrafSync(path: string): void { throw new Error('rimraf - will refuse to recursively delete root'); } - fs.rmdirSync(path, { recursive: true }); + fs.rmSync(path, { recursive: true, force: true, maxRetries: 3 }); } //#endregion diff --git a/src/vs/base/node/processes.ts b/src/vs/base/node/processes.ts index b37b12e1c2fbe..4085e82397c9c 100644 --- a/src/vs/base/node/processes.ts +++ b/src/vs/base/node/processes.ts @@ -50,7 +50,7 @@ function terminateProcess(process: cp.ChildProcess, cwd?: string): Promise { killProcess.once('error', (err) => { resolve({ success: false, error: err }); @@ -70,7 +70,7 @@ function terminateProcess(process: cp.ChildProcess, cwd?: string): Promise { - cp.execFile(cmd, [process.pid.toString()], { encoding: 'utf8', shell: true } as cp.ExecFileOptions, (err, stdout, stderr) => { + cp.execFile(cmd, [process.pid!.toString()], { encoding: 'utf8', shell: true } as cp.ExecFileOptions, (err, stdout, stderr) => { if (err) { resolve({ success: false, error: err }); } else { @@ -322,7 +322,7 @@ export abstract class AbstractProcess { public get pid(): Promise { if (this.childProcessPromise) { - return this.childProcessPromise.then(childProcess => childProcess.pid, err => -1); + return this.childProcessPromise.then(childProcess => childProcess.pid!, err => -1); } else { return new Promise((resolve) => { this.pidResolve = resolve; diff --git a/src/vs/base/parts/sandbox/common/electronTypes.ts b/src/vs/base/parts/sandbox/common/electronTypes.ts index 01622e6bbab13..d2d75da87ce3a 100644 --- a/src/vs/base/parts/sandbox/common/electronTypes.ts +++ b/src/vs/base/parts/sandbox/common/electronTypes.ts @@ -7,11 +7,10 @@ // ####################################################################### // ### ### // ### electron.d.ts types we need in a common layer for reuse ### -// ### (copied from Electron 11.x) ### +// ### (copied from Electron 16.x) ### // ### ### // ####################################################################### - export interface MessageBoxOptions { /** * Content of the message box. @@ -34,6 +33,13 @@ export interface MessageBoxOptions { * the message box opens. */ defaultId?: number; + /** + * Pass an instance of AbortSignal to optionally close the message box, the message + * box will behave as if it was cancelled by the user. On macOS, `signal` does not + * work with message boxes that do not have a parent window, since those message + * boxes run synchronously due to platform limitations. + */ + signal?: AbortSignal; /** * Title of the message box, some platforms will not show it. */ @@ -50,7 +56,12 @@ export interface MessageBoxOptions { * Initial checked state of the checkbox. `false` by default. */ checkboxChecked?: boolean; - // icon?: NativeImage; + /** + * Custom width of the text in the message box. + * + * @platform darwin + */ + textWidth?: number; /** * The index of the button to be used to cancel the dialog, via the `Esc` key. By * default this is assigned to the first button with "cancel" or "no" as the label. @@ -88,21 +99,10 @@ export interface MessageBoxReturnValue { checkboxChecked: boolean; } -export interface OpenDevToolsOptions { - /** - * Opens the devtools with specified dock state, can be `right`, `bottom`, - * `undocked`, `detach`. Defaults to last used dock state. In `undocked` mode it's - * possible to dock back. In `detach` mode it's not. - */ - mode: ('right' | 'bottom' | 'undocked' | 'detach'); +export interface SaveDialogOptions { /** - * Whether to bring the opened devtools window to the foreground. The default is - * `true`. + * The dialog title. Cannot be displayed on some _Linux_ desktop environments. */ - activate?: boolean; -} - -export interface SaveDialogOptions { title?: string; /** * Absolute directory path, absolute file path, or file name to use by default. @@ -143,6 +143,25 @@ export interface SaveDialogOptions { securityScopedBookmarks?: boolean; } +export interface SaveDialogReturnValue { + /** + * whether or not the dialog was canceled. + */ + canceled: boolean; + /** + * If the dialog is canceled, this will be `undefined`. + */ + filePath?: string; + /** + * Base64 encoded string which contains the security scoped bookmark data for the + * saved file. `securityScopedBookmarks` must be enabled for this to be present. + * (For return values, see table here.) + * + * @platform darwin,mas + */ + bookmark?: string; +} + export interface OpenDialogOptions { title?: string; defaultPath?: string; @@ -191,25 +210,6 @@ export interface OpenDialogReturnValue { bookmarks?: string[]; } -export interface SaveDialogReturnValue { - /** - * whether or not the dialog was canceled. - */ - canceled: boolean; - /** - * If the dialog is canceled, this will be `undefined`. - */ - filePath?: string; - /** - * Base64 encoded string which contains the security scoped bookmark data for the - * saved file. `securityScopedBookmarks` must be enabled for this to be present. - * (For return values, see table here.) - * - * @platform darwin,mas - */ - bookmark?: string; -} - export interface FileFilter { // Docs: https://electronjs.org/docs/api/structures/file-filter @@ -218,6 +218,20 @@ export interface FileFilter { name: string; } +export interface OpenDevToolsOptions { + /** + * Opens the devtools with specified dock state, can be `right`, `bottom`, + * `undocked`, `detach`. Defaults to last used dock state. In `undocked` mode it's + * possible to dock back. In `detach` mode it's not. + */ + mode: ('right' | 'bottom' | 'undocked' | 'detach'); + /** + * Whether to bring the opened devtools window to the foreground. The default is + * `true`. + */ + activate?: boolean; +} + export interface InputEvent { // Docs: https://electronjs.org/docs/api/structures/input-event diff --git a/src/vs/base/parts/sandbox/electron-sandbox/electronTypes.ts b/src/vs/base/parts/sandbox/electron-sandbox/electronTypes.ts index 2b6e32fce344d..58589dbec1d47 100644 --- a/src/vs/base/parts/sandbox/electron-sandbox/electronTypes.ts +++ b/src/vs/base/parts/sandbox/electron-sandbox/electronTypes.ts @@ -7,7 +7,7 @@ // ####################################################################### // ### ### // ### electron.d.ts types we expose from electron-sandbox ### -// ### (copied from Electron 11.x) ### +// ### (copied from Electron 16.x) ### // ### ### // ####################################################################### @@ -161,62 +161,6 @@ export interface ProcessMemoryInfo { shared: number; } -export interface CrashReporterStartOptions { - /** - * URL that crash reports will be sent to as POST. - */ - submitURL: string; - /** - * Defaults to `app.name`. - */ - productName?: string; - /** - * Deprecated alias for `{ globalExtra: { _companyName: ... } }`. - * - * @deprecated - */ - companyName?: string; - /** - * Whether crash reports should be sent to the server. If false, crash reports will - * be collected and stored in the crashes directory, but not uploaded. Default is - * `true`. - */ - uploadToServer?: boolean; - /** - * If true, crashes generated in the main process will not be forwarded to the - * system crash handler. Default is `false`. - */ - ignoreSystemCrashHandler?: boolean; - /** - * If true, limit the number of crashes uploaded to 1/hour. Default is `false`. - * - * @platform darwin,win32 - */ - rateLimit?: boolean; - /** - * If true, crash reports will be compressed and uploaded with `Content-Encoding: - * gzip`. Default is `true`. - */ - compress?: boolean; - /** - * Extra string key/value annotations that will be sent along with crash reports - * that are generated in the main process. Only string values are supported. - * Crashes generated in child processes will not contain these extra parameters to - * crash reports generated from child processes, call `addExtraParameter` from the - * child process. - */ - extra?: Record; - /** - * Extra string key/value annotations that will be sent along with any crash - * reports generated in any process. These annotations cannot be changed once the - * crash reporter has been started. If a key is present in both the global extra - * parameters and the process-specific extra parameters, then the global one will - * take precedence. By default, `productName` and the app version are included, as - * well as the Electron version. - */ - globalExtra?: Record; -} - /** * Additional information around a `app.on('login')` event. */ diff --git a/src/vs/base/test/node/pfs/pfs.test.ts b/src/vs/base/test/node/pfs/pfs.test.ts index 09bc57bf432e5..e45782e236f65 100644 --- a/src/vs/base/test/node/pfs/pfs.test.ts +++ b/src/vs/base/test/node/pfs/pfs.test.ts @@ -273,7 +273,7 @@ flakySuite('PFS', function () { const linkTarget = await Promises.readlink(targetLinkMD5JSFolderLinked); assert.strictEqual(linkTarget, targetLinkMD5JSFolder); - await Promises.rmdir(targetLinkTestFolder, { recursive: true }); + await Promises.rm(targetLinkTestFolder); } // Copy with `preserveSymlinks: false` and verify result diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 367e2780fd915..e7275a7112ab2 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -198,7 +198,7 @@ class SharedProcessMain extends Disposable { services.set(ILogService, logService); // Worker - this.sharedProcessWorkerService = new SharedProcessWorkerService(logService, productService, environmentService); + this.sharedProcessWorkerService = new SharedProcessWorkerService(logService); services.set(ISharedProcessWorkerService, this.sharedProcessWorkerService); // Files diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index bd0a3b2a9486e..9c487c3475c83 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -245,7 +245,7 @@ export class CodeApplication extends Disposable { //#region Code Cache - type SessionWithCodeCachePathSupport = typeof Session & { + type SessionWithCodeCachePathSupport = Session & { /** * Sets code cache directory. By default, the directory will be `Code Cache` under * the respective user data folder. diff --git a/src/vs/platform/environment/test/node/nativeModules.test.ts b/src/vs/platform/environment/test/node/nativeModules.test.ts index 74bbd2d7b1d11..f3ef9e7a63553 100644 --- a/src/vs/platform/environment/test/node/nativeModules.test.ts +++ b/src/vs/platform/environment/test/node/nativeModules.test.ts @@ -28,12 +28,12 @@ flakySuite('Native Modules (all platforms)', () => { assert.ok(typeof watchDog.start === 'function', testErrorMessage('native-watchdog')); }); - test('node-pty', async () => { + (process.type === 'renderer' ? test.skip /* TODO@electron module is not context aware yet and thus cannot load in Electron renderer used by tests */ : test)('node-pty', async () => { const nodePty = await import('node-pty'); assert.ok(typeof nodePty.spawn === 'function', testErrorMessage('node-pty')); }); - test('spdlog', async () => { + (process.type === 'renderer' ? test.skip /* TODO@electron module is not context aware yet and thus cannot load in Electron renderer used by tests */ : test)('spdlog', async () => { const spdlog = await import('spdlog'); assert.ok(typeof spdlog.createRotatingLogger === 'function', testErrorMessage('spdlog')); }); @@ -73,7 +73,7 @@ flakySuite('Native Modules (all platforms)', () => { (!isWindows ? suite.skip : suite)('Native Modules (Windows)', () => { - test('windows-mutex', async () => { + (process.type === 'renderer' ? test.skip /* TODO@electron module is not context aware yet and thus cannot load in Electron renderer used by tests */ : test)('windows-mutex', async () => { const mutex = await import('windows-mutex'); assert.ok(mutex && typeof mutex.isActive === 'function', testErrorMessage('windows-mutex')); assert.ok(typeof mutex.isActive === 'function', testErrorMessage('windows-mutex')); diff --git a/src/vs/platform/extensions/node/extensionHostStarterWorker.ts b/src/vs/platform/extensions/node/extensionHostStarterWorker.ts index ed03fbc07f5ec..e0f8d8b03e451 100644 --- a/src/vs/platform/extensions/node/extensionHostStarterWorker.ts +++ b/src/vs/platform/extensions/node/extensionHostStarterWorker.ts @@ -58,7 +58,7 @@ class ExtensionHostProcess extends Disposable { mixin({ cwd: cwd() }, opts), ); const forkTime = sw.elapsed(); - const pid = this._process.pid; + const pid = this._process.pid!; this._host.logInfo(`Starting extension host with pid ${pid} (fork() took ${forkTime} ms).`); @@ -103,7 +103,7 @@ class ExtensionHostProcess extends Disposable { if (typeof (process)._debugProcess === 'function') { // use (undocumented) _debugProcess feature of node - (process)._debugProcess!(this._process.pid); + (process)._debugProcess!(this._process.pid!); return true; } else if (!platform.isWindows) { // use KILL USR1 on non-windows platforms (fallback) diff --git a/src/vs/platform/files/browser/htmlFileSystemProvider.ts b/src/vs/platform/files/browser/htmlFileSystemProvider.ts index 3acc9fa23159c..e5bc21b335fba 100644 --- a/src/vs/platform/files/browser/htmlFileSystemProvider.ts +++ b/src/vs/platform/files/browser/htmlFileSystemProvider.ts @@ -134,7 +134,8 @@ export class HTMLFileSystemProvider implements IFileSystemProviderWithFileReadWr // Entire file else { - const reader: ReadableStreamDefaultReader = file.stream().getReader(); + // TODO@electron: duplicate type definitions originate from `@types/node/stream/consumers.d.ts` + const reader: ReadableStreamDefaultReader = (file.stream() as unknown as ReadableStream).getReader(); let res = await reader.read(); while (!res.done) { diff --git a/src/vs/platform/issue/electron-main/issueMainService.ts b/src/vs/platform/issue/electron-main/issueMainService.ts index 36cd84f124adb..4411fa6698e10 100644 --- a/src/vs/platform/issue/electron-main/issueMainService.ts +++ b/src/vs/platform/issue/electron-main/issueMainService.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { BrowserWindow, Display, ipcMain, IpcMainEvent, screen } from 'electron'; +import { BrowserWindow, BrowserWindowConstructorOptions, Display, ipcMain, IpcMainEvent, screen } from 'electron'; import { arch, release, type } from 'os'; import { mnemonicButtonLabel } from 'vs/base/common/labels'; import { DisposableStore } from 'vs/base/common/lifecycle'; @@ -337,10 +337,11 @@ export class IssueMainService implements ICommonIssueService { nativeWindowOpen: true, zoomFactor: zoomLevelToZoomFactor(options.zoomLevel), sandbox: true, - contextIsolation: true, + contextIsolation: true }, - alwaysOnTop: options.alwaysOnTop - }); + alwaysOnTop: options.alwaysOnTop, + experimentalDarkMode: true + } as BrowserWindowConstructorOptions & { experimentalDarkMode: boolean }); window.setMenuBarVisibility(false); diff --git a/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorker.ts b/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorker.ts index 10f7921676466..ccb67d7032fa5 100644 --- a/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorker.ts +++ b/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorker.ts @@ -29,11 +29,6 @@ export interface ISharedProcessWorkerEnvironment { * Full absolute path to our `bootstrap-fork.js` file. */ bootstrapPath: string; - - /** - * Extra environment to use for the process to fork. - */ - env: NodeJS.ProcessEnv; } interface IBaseMessage { diff --git a/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorkerMain.ts b/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorkerMain.ts index e8ec1756bb7e1..f0af8c6648e98 100644 --- a/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorkerMain.ts +++ b/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorkerMain.ts @@ -124,7 +124,7 @@ class SharedProcessWorkerProcess extends Disposable { } spawn(): void { - Logger.trace(`Forking worker process (env: ${JSON.stringify(this.environment.env)})`); + Logger.trace('Forking worker process'); // Fork module via bootstrap-fork for AMD support this.child = fork( @@ -194,7 +194,6 @@ class SharedProcessWorkerProcess extends Disposable { private getEnv(): NodeJS.ProcessEnv { const env: NodeJS.ProcessEnv = { ...deepClone(process.env), - ...this.environment.env, VSCODE_AMD_ENTRYPOINT: this.configuration.process.moduleId, VSCODE_PIPE_LOGGING: 'true', VSCODE_VERBOSE_LOGGING: 'true', diff --git a/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorkerService.ts b/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorkerService.ts index 4aa130c3aa2a6..15eba30ae4444 100644 --- a/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorkerService.ts +++ b/src/vs/platform/sharedProcess/electron-browser/sharedProcessWorkerService.ts @@ -3,20 +3,16 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { CrashReporterStartOptions, ipcRenderer } from 'electron'; -import { join } from 'path'; +import { ipcRenderer } from 'electron'; import { DeferredPromise } from 'vs/base/common/async'; import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation'; import { Emitter } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; import { FileAccess } from 'vs/base/common/network'; -import { isLinux } from 'vs/base/common/platform'; -import { generateUuid, isUUID } from 'vs/base/common/uuid'; -import { INativeEnvironmentService } from 'vs/platform/environment/common/environment'; +import { generateUuid } from 'vs/base/common/uuid'; import { ILogService } from 'vs/platform/log/common/log'; -import { IProductService } from 'vs/platform/product/common/productService'; import { hash, IOnDidTerminateSharedProcessWorkerProcess, ISharedProcessWorkerConfiguration, ISharedProcessWorkerProcessExit, ISharedProcessWorkerService } from 'vs/platform/sharedProcess/common/sharedProcessWorkerService'; -import { SharedProcessWorkerMessages, ISharedProcessToWorkerMessage, IWorkerToSharedProcessMessage, ISharedProcessWorkerEnvironment } from 'vs/platform/sharedProcess/electron-browser/sharedProcessWorker'; +import { SharedProcessWorkerMessages, ISharedProcessToWorkerMessage, IWorkerToSharedProcessMessage } from 'vs/platform/sharedProcess/electron-browser/sharedProcessWorker'; export class SharedProcessWorkerService implements ISharedProcessWorkerService { @@ -28,9 +24,7 @@ export class SharedProcessWorkerService implements ISharedProcessWorkerService { private readonly processResolvers = new Map void>(); constructor( - @ILogService private readonly logService: ILogService, - @IProductService private readonly productService: IProductService, - @INativeEnvironmentService private readonly environmentService: INativeEnvironmentService + @ILogService private readonly logService: ILogService ) { } @@ -124,7 +118,7 @@ export class SharedProcessWorkerService implements ISharedProcessWorkerService { if (!webWorkerPromise) { this.logService.trace(`SharedProcess: creating new web worker (${configuration.process.moduleId})`); - const sharedProcessWorker = new SharedProcessWebWorker(configuration.process.type, this.logService, this.productService, this.environmentService); + const sharedProcessWorker = new SharedProcessWebWorker(configuration.process.type, this.logService); webWorkerPromise = sharedProcessWorker.init(); // Make sure to run through our normal `disposeWorker` call @@ -163,9 +157,7 @@ class SharedProcessWebWorker extends Disposable { constructor( private readonly type: string, - private readonly logService: ILogService, - private readonly productService: IProductService, - private readonly environmentService: INativeEnvironmentService + private readonly logService: ILogService ) { super(); } @@ -288,47 +280,14 @@ class SharedProcessWebWorker extends Disposable { const workerMessage: ISharedProcessToWorkerMessage = { id: SharedProcessWorkerMessages.Spawn, configuration, - environment: this.getSharedProcessWorkerEnvironment() + environment: { + bootstrapPath: FileAccess.asFileUri('bootstrap-fork', require).fsPath + } }; return this.send(workerMessage, token, port); } - private getSharedProcessWorkerEnvironment(): ISharedProcessWorkerEnvironment { - const sharedProcessWorkerEnvironment = { - bootstrapPath: FileAccess.asFileUri('bootstrap-fork', require).fsPath, - env: Object.create(null) - }; - - // Crash reporter support - // TODO@bpasero TODO@deepak1556 remove once we updated to Electron 15 - if (isLinux) { - const crashReporterStartOptions: CrashReporterStartOptions = { - companyName: this.productService.crashReporter?.companyName || 'Microsoft', - productName: this.productService.crashReporter?.productName || this.productService.nameShort, - submitURL: '', - uploadToServer: false - }; - - const crashReporterId = this.environmentService.args['crash-reporter-id']; // crashReporterId is set by the main process only when crash reporting is enabled by the user. - const appcenter = this.productService.appCenter; - const uploadCrashesToServer = !this.environmentService.args['crash-reporter-directory']; // only upload unless --crash-reporter-directory is provided - if (uploadCrashesToServer && appcenter && crashReporterId && isUUID(crashReporterId)) { - const submitURL = appcenter[`linux-x64`]; - crashReporterStartOptions.submitURL = submitURL.concat('&uid=', crashReporterId, '&iid=', crashReporterId, '&sid=', crashReporterId); - crashReporterStartOptions.uploadToServer = true; - } - // In the upload to server case, there is a bug in electron that creates client_id file in the current - // working directory. Setting the env BREAKPAD_DUMP_LOCATION will force electron to create the file in that location, - // For https://github.com/microsoft/vscode/issues/105743 - const extHostCrashDirectory = this.environmentService.args['crash-reporter-directory'] || this.environmentService.userDataPath; - sharedProcessWorkerEnvironment.env.BREAKPAD_DUMP_LOCATION = join(extHostCrashDirectory, this.type); - sharedProcessWorkerEnvironment.env.VSCODE_CRASH_REPORTER_START_OPTIONS = JSON.stringify(crashReporterStartOptions); - } - - return sharedProcessWorkerEnvironment; - } - terminate(configuration: ISharedProcessWorkerConfiguration, token: CancellationToken): Promise { const workerMessage: ISharedProcessToWorkerMessage = { id: SharedProcessWorkerMessages.Terminate, diff --git a/src/vs/platform/tunnel/node/tunnelService.ts b/src/vs/platform/tunnel/node/tunnelService.ts index 6aa019bf1e4a2..d5ace0bcdf0a2 100644 --- a/src/vs/platform/tunnel/node/tunnelService.ts +++ b/src/vs/platform/tunnel/node/tunnelService.ts @@ -120,12 +120,16 @@ class NodeRemoteTunnel extends Disposable implements RemoteTunnel { } localSocket.on('end', () => { - this._socketsDispose.delete(localSocket.localAddress); + if (localSocket.localAddress) { + this._socketsDispose.delete(localSocket.localAddress); + } remoteSocket.end(); }); localSocket.on('close', () => remoteSocket.end()); localSocket.on('error', () => { - this._socketsDispose.delete(localSocket.localAddress); + if (localSocket.localAddress) { + this._socketsDispose.delete(localSocket.localAddress); + } remoteSocket.destroy(); }); @@ -137,11 +141,13 @@ class NodeRemoteTunnel extends Disposable implements RemoteTunnel { localSocket.pipe(remoteSocket); remoteSocket.pipe(localSocket); - this._socketsDispose.set(localSocket.localAddress, () => { - // Need to end instead of unpipe, otherwise whatever is connected locally could end up "stuck" with whatever state it had until manually exited. - localSocket.end(); - remoteSocket.end(); - }); + if (localSocket.localAddress) { + this._socketsDispose.set(localSocket.localAddress, () => { + // Need to end instead of unpipe, otherwise whatever is connected locally could end up "stuck" with whatever state it had until manually exited. + localSocket.end(); + remoteSocket.end(); + }); + } } } diff --git a/src/vs/platform/webview/electron-main/webviewMainService.ts b/src/vs/platform/webview/electron-main/webviewMainService.ts index 350768d61a422..9b51a3a8b37f4 100644 --- a/src/vs/platform/webview/electron-main/webviewMainService.ts +++ b/src/vs/platform/webview/electron-main/webviewMainService.ts @@ -50,8 +50,10 @@ export class WebviewMainService extends Disposable implements IWebviewManagerSer public async findInFrame(windowId: WebviewWindowId, frameName: string, text: string, options: { findNext?: boolean; forward?: boolean }): Promise { const initialFrame = this.getFrameByName(windowId, frameName); - type WebFrameMainWithFindSupport = typeof WebFrameMain & { + type WebFrameMainWithFindSupport = WebFrameMain & { findInFrame?(text: string, findOptions: FindInFrameOptions): void; + on(event: 'found-in-frame', listener: Function): WebFrameMain; + removeListener(event: 'found-in-frame', listener: Function): WebFrameMain; }; const frame = initialFrame as unknown as WebFrameMainWithFindSupport; if (typeof frame.findInFrame === 'function') { @@ -62,17 +64,17 @@ export class WebviewMainService extends Disposable implements IWebviewManagerSer const foundInFrameHandler = (_: unknown, result: FoundInFrameResult) => { if (result.finalUpdate) { this._onFoundInFrame.fire(result); - initialFrame.removeListener('found-in-frame', foundInFrameHandler); + frame.removeListener('found-in-frame', foundInFrameHandler); } }; - initialFrame.on('found-in-frame', foundInFrameHandler); + frame.on('found-in-frame', foundInFrameHandler); } } public async stopFindInFrame(windowId: WebviewWindowId, frameName: string, options: { keepSelection?: boolean }): Promise { const initialFrame = this.getFrameByName(windowId, frameName); - type WebFrameMainWithFindSupport = typeof WebFrameMain & { + type WebFrameMainWithFindSupport = WebFrameMain & { stopFindInFrame?(stopOption: 'keepSelection' | 'clearSelection'): void; }; diff --git a/src/vs/platform/windows/electron-main/window.ts b/src/vs/platform/windows/electron-main/window.ts index 84f82759d10fb..3b0a142dc367a 100644 --- a/src/vs/platform/windows/electron-main/window.ts +++ b/src/vs/platform/windows/electron-main/window.ts @@ -174,7 +174,7 @@ export class CodeWindow extends Disposable implements ICodeWindow { const windowSettings = this.configurationService.getValue('window'); - const options: BrowserWindowConstructorOptions = { + const options: BrowserWindowConstructorOptions & { experimentalDarkMode: boolean } = { width: this.windowState.width, height: this.windowState.height, x: this.windowState.x, @@ -192,6 +192,9 @@ export class CodeWindow extends Disposable implements ICodeWindow { spellcheck: false, nativeWindowOpen: true, zoomFactor: zoomLevelToZoomFactor(windowSettings?.zoomLevel), + // Enable experimental css highlight api https://chromestatus.com/feature/5436441440026624 + // Refs https://github.com/microsoft/vscode/issues/140098 + enableBlinkFeatures: 'HighlightAPI', ...this.environmentMainService.sandbox ? // Sandbox @@ -204,7 +207,8 @@ export class CodeWindow extends Disposable implements ICodeWindow { nodeIntegration: true, contextIsolation: false } - } + }, + experimentalDarkMode: true }; // Apply icon to window diff --git a/src/vs/workbench/contrib/files/browser/fileImportExport.ts b/src/vs/workbench/contrib/files/browser/fileImportExport.ts index 5c92bd9935a1b..4ab523e659cb5 100644 --- a/src/vs/workbench/contrib/files/browser/fileImportExport.ts +++ b/src/vs/workbench/contrib/files/browser/fileImportExport.ts @@ -315,7 +315,8 @@ export class BrowserFileUpload { // Read the file in chunks using File.stream() web APIs try { - const reader: ReadableStreamDefaultReader = file.stream().getReader(); + // TODO@electron: duplicate type definitions originate from `@types/node/stream/consumers.d.ts` + const reader: ReadableStreamDefaultReader = (file.stream() as unknown as ReadableStream).getReader(); let res = await reader.read(); while (!res.done) { diff --git a/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts index 5122863bd3c0f..8cef2f64d5768 100644 --- a/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts @@ -8,7 +8,6 @@ import { findFreePort } from 'vs/base/node/ports'; import { createRandomIPCHandle, NodeSocket } from 'vs/base/parts/ipc/node/ipc.net'; import * as nls from 'vs/nls'; -import { CrashReporterStartOptions } from 'vs/base/parts/sandbox/electron-sandbox/electronTypes'; import { timeout } from 'vs/base/common/async'; import { toErrorMessage } from 'vs/base/common/errorMessage'; import { Emitter, Event } from 'vs/base/common/event'; @@ -40,8 +39,6 @@ import { IHostService } from 'vs/workbench/services/host/browser/host'; import { joinPath } from 'vs/base/common/resources'; import { Registry } from 'vs/platform/registry/common/platform'; import { IOutputChannelRegistry, Extensions } from 'vs/workbench/services/output/common/output'; -import { isUUID } from 'vs/base/common/uuid'; -import { join } from 'vs/base/common/path'; import { IShellEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/shellEnvironmentService'; import { IExtensionHostProcessOptions, IExtensionHostStarter } from 'vs/platform/extensions/common/extensionHostStarter'; import { SerializedError } from 'vs/base/common/errors'; @@ -271,31 +268,6 @@ export class LocalProcessExtensionHost implements IExtensionHost { opts.execArgv.unshift(`--max-old-space-size=${this._environmentService.args['max-memory']}`); } - // On linux crash reporter needs to be started on child node processes explicitly - // TODO@bpasero TODO@deepak1556 remove once we updated to Electron 15 - if (platform.isLinux) { - const crashReporterStartOptions: CrashReporterStartOptions = { - companyName: this._productService.crashReporter?.companyName || 'Microsoft', - productName: this._productService.crashReporter?.productName || this._productService.nameShort, - submitURL: '', - uploadToServer: false - }; - const crashReporterId = this._environmentService.crashReporterId; // crashReporterId is set by the main process only when crash reporting is enabled by the user. - const appcenter = this._productService.appCenter; - const uploadCrashesToServer = !this._environmentService.crashReporterDirectory; // only upload unless --crash-reporter-directory is provided - if (uploadCrashesToServer && appcenter && crashReporterId && isUUID(crashReporterId)) { - const submitURL = appcenter[`linux-x64`]; - crashReporterStartOptions.submitURL = submitURL.concat('&uid=', crashReporterId, '&iid=', crashReporterId, '&sid=', crashReporterId); - crashReporterStartOptions.uploadToServer = true; - } - // In the upload to server case, there is a bug in electron that creates client_id file in the current - // working directory. Setting the env BREAKPAD_DUMP_LOCATION will force electron to create the file in that location, - // For https://github.com/microsoft/vscode/issues/105743 - const extHostCrashDirectory = this._environmentService.crashReporterDirectory || this._environmentService.userDataPath; - opts.env.BREAKPAD_DUMP_LOCATION = join(extHostCrashDirectory, `${ExtensionHostLogFileName} Crash Reports`); - opts.env.VSCODE_CRASH_REPORTER_START_OPTIONS = JSON.stringify(crashReporterStartOptions); - } - // Catch all output coming from the extension host process type Output = { data: string; format: string[] }; const onStdout = this._handleProcessOutputStream(this._extensionHostProcess.onStdout); diff --git a/test/automation/package.json b/test/automation/package.json index 0c9f304d98c92..7a7b3c5a56020 100644 --- a/test/automation/package.json +++ b/test/automation/package.json @@ -29,7 +29,7 @@ "devDependencies": { "@types/mkdirp": "^1.0.1", "@types/ncp": "2.0.1", - "@types/node": "14.x", + "@types/node": "16.x", "@types/tmp": "0.2.2", "cpx2": "3.0.0", "npm-run-all": "^4.1.5", diff --git a/test/automation/src/code.ts b/test/automation/src/code.ts index f8b5ffa5b93f7..d728c2dfddb3b 100644 --- a/test/automation/src/code.ts +++ b/test/automation/src/code.ts @@ -206,7 +206,7 @@ export class Code { this.logger.log('Smoke test exit call did not terminate process after 10s, forcefully exiting the application...'); // no need to await since we're polling for the process to die anyways - treekill(this.mainProcess.pid, err => { + treekill(this.mainProcess.pid!, err => { this.logger.log('Failed to kill Electron process tree:', err?.message); }); } @@ -217,7 +217,7 @@ export class Code { } try { - process.kill(this.mainProcess.pid, 0); // throws an exception if the process doesn't exist anymore. + process.kill(this.mainProcess.pid!, 0); // throws an exception if the process doesn't exist anymore. await new Promise(resolve => setTimeout(resolve, 500)); } catch (error) { done = true; diff --git a/test/automation/yarn.lock b/test/automation/yarn.lock index d2311cbb4f180..b5ccab17e0f9f 100644 --- a/test/automation/yarn.lock +++ b/test/automation/yarn.lock @@ -21,10 +21,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.1.tgz#3b5c3a26393c19b400844ac422bd0f631a94d69d" integrity sha512-aK9jxMypeSrhiYofWWBf/T7O+KwaiAHzM4sveCdWPn71lzUSMimRnKzhXDKfKwV1kWoBo2P1aGgaIYGLf9/ljw== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/tmp@0.2.2": version "0.2.2" diff --git a/test/integration/browser/package.json b/test/integration/browser/package.json index 594808bf0d760..446c8b69e5fe9 100644 --- a/test/integration/browser/package.json +++ b/test/integration/browser/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/mkdirp": "^1.0.1", - "@types/node": "14.x", + "@types/node": "16.x", "@types/optimist": "0.0.29", "@types/rimraf": "^2.0.4", "@types/tmp": "0.1.0", diff --git a/test/integration/browser/yarn.lock b/test/integration/browser/yarn.lock index a5682ee9a9083..b3498682cd8f8 100644 --- a/test/integration/browser/yarn.lock +++ b/test/integration/browser/yarn.lock @@ -33,10 +33,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.0.tgz#b417deda18cf8400f278733499ad5547ed1abec4" integrity sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/optimist@0.0.29": version "0.0.29" diff --git a/test/smoke/package.json b/test/smoke/package.json index 98e25ed8745ea..e0e9c671d831d 100644 --- a/test/smoke/package.json +++ b/test/smoke/package.json @@ -21,7 +21,7 @@ "@types/mkdirp": "^1.0.1", "@types/mocha": "^8.2.0", "@types/ncp": "2.0.1", - "@types/node": "14.x", + "@types/node": "16.x", "@types/node-fetch": "^2.5.10", "@types/rimraf": "3.0.2", "npm-run-all": "^4.1.5", diff --git a/test/smoke/yarn.lock b/test/smoke/yarn.lock index 136ea6930197a..7eda3e418f98c 100644 --- a/test/smoke/yarn.lock +++ b/test/smoke/yarn.lock @@ -58,10 +58,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.0.tgz#390ea202539c61c8fa6ba4428b57e05bc36dc47b" integrity sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/rimraf@3.0.2": version "3.0.2" diff --git a/test/unit/electron/index.js b/test/unit/electron/index.js index f5dc37d1093dd..2c3ad1ab9fc91 100644 --- a/test/unit/electron/index.js +++ b/test/unit/electron/index.js @@ -20,10 +20,6 @@ const net = require('net'); const createStatsCollector = require('mocha/lib/stats-collector'); const { applyReporter, importMochaReporter } = require('../reporter'); -// Disable render process reuse, we still have -// non-context aware native modules in the renderer. -app.allowRendererProcessReuse = false; - const optimist = require('optimist') .describe('grep', 'only run tests matching ').alias('grep', 'g').alias('grep', 'f').string('grep') .describe('run', 'only run tests from ').string('run') diff --git a/yarn.lock b/yarn.lock index df252ede2f1e9..3f037fdf6099c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -683,14 +683,13 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== -"@electron/get@^1.0.1": - version "1.12.3" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.3.tgz#fa2723385c4b565a34c4c82f46087aa2a5fbf6d0" - integrity sha512-NFwSnVZQK7dhOYF1NQCt+HGqgL1aNdj0LUSx75uCqnZJqyiWCVdAMFV4b4/kC8HjUJAnsvdSEmjEt4G2qNQ9+Q== +"@electron/get@^1.12.4": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz#95c6bcaff4f9a505ea46792424f451efea89228c" + integrity sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ== dependencies: debug "^4.1.1" env-paths "^2.2.0" - filenamify "^4.1.0" fs-extra "^8.1.0" got "^9.6.0" progress "^2.0.3" @@ -700,10 +699,10 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" -"@electron/get@^1.12.4": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz#95c6bcaff4f9a505ea46792424f451efea89228c" - integrity sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ== +"@electron/get@^1.13.0": + version "1.13.1" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368" + integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA== dependencies: debug "^4.1.1" env-paths "^2.2.0" @@ -713,7 +712,7 @@ semver "^6.2.0" sumchecker "^3.0.1" optionalDependencies: - global-agent "^2.0.2" + global-agent "^3.0.0" global-tunnel-ng "^2.7.1" "@eslint/eslintrc@^1.0.5": @@ -1308,10 +1307,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-4.2.22.tgz#cf488a0f6b4a9c245d09927f4f757ca278b9c8ce" integrity sha512-LXRap3bb4AjtLZ5NOFc4ssVZrQPTgdPcNm++0SEJuJZaOA+xHkojJNYqy33A5q/94BmG5tA6yaMeD4VdCv5aSA== -"@types/node@14.x": - version "14.14.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" - integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== +"@types/node@16.x": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/node@^10.11.7": version "10.12.21" @@ -1569,12 +1568,12 @@ https-proxy-agent "^4.0.0" proxy-from-env "^1.1.0" -"@vscode/sqlite3@4.0.12": - version "4.0.12" - resolved "https://registry.yarnpkg.com/@vscode/sqlite3/-/sqlite3-4.0.12.tgz#50b36c788b5d130c02612b27eaf6905dc2156a43" - integrity sha512-45Nbq4vgUhcejdDkX/G9K5BMMgRkBqtHtbChbvXHesMfk88USt4i94i9EM0DfHO7ijl3oIwGqzIob6lgeYi41w== +"@vscode/sqlite3@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@vscode/sqlite3/-/sqlite3-5.0.7.tgz#358df36bb0e9e735c54785e3e4b9b2dce1d32895" + integrity sha512-NlsOf+Hir2r4zopI1qMvzWXPwPJuFscirkmFTniTAT24Yz2FWcyZxzK7UT8iSNiTqOCPz48yF55ZVHaz7tTuVQ== dependencies: - nan "2.14.2" + node-addon-api "^4.2.0" "@vscode/sudo-prompt@9.3.1": version "9.3.1" @@ -4298,12 +4297,12 @@ electron-to-chromium@^1.4.17: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.45.tgz#cf1144091d6683cbd45a231954a745f02fb24598" integrity sha512-czF9eYVuOmlY/vxyMQz2rGlNSjZpxNQYBe1gmQv7al171qOIhgyO9k7D5AKlgeTCSPKk+LHhj5ZyIdmEub9oNg== -electron@13.5.1: - version "13.5.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-13.5.1.tgz#76c02c39be228532f886a170b472cbd3d93f0d0f" - integrity sha512-ZyxhIhmdaeE3xiIGObf0zqEyCyuIDqZQBv9NKX8w5FNzGm87j4qR0H1+GQg6vz+cA1Nnv1x175Zvimzc0/UwEQ== +electron@16.0.8: + version "16.0.8" + resolved "https://registry.yarnpkg.com/electron/-/electron-16.0.8.tgz#7ebd3e23c4883c239f53d8b7af1100f455ac8a02" + integrity sha512-znTVkl8LaGcPNdfc6SRr+6LYg2GtSCKXln/nW/PC+urBfAFnOYIuDock8QyGVFfzr5PuAa+g8YQQAboHV77D7g== dependencies: - "@electron/get" "^1.0.1" + "@electron/get" "^1.13.0" "@types/node" "^14.6.2" extract-zip "^1.0.3" @@ -5117,20 +5116,6 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.2.0.tgz#c99716d676869585b3b5d328b3f06590d032e89f" - integrity sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.1" - trim-repeated "^1.0.0" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -5649,6 +5634,18 @@ global-agent@^2.0.2: semver "^7.3.2" serialize-error "^7.0.1" +global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + dependencies: + boolean "^3.0.1" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -8144,7 +8141,7 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -nan@2.14.2, nan@^2.12.1, nan@^2.13.2: +nan@^2.12.1, nan@^2.13.2: version "2.14.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== @@ -8259,6 +8256,11 @@ node-addon-api@^3.2.1: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-addon-api@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87" + integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q== + node-fetch@^2.6.0, node-fetch@^2.6.1: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -10953,13 +10955,6 @@ strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-outer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - style-loader@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz#1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82" @@ -11395,13 +11390,6 @@ tree-kill@^1.2.2: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - ts-loader@^9.2.3: version "9.2.3" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.3.tgz#dc3b6362a4d4382493cd4f138d345f419656de68"