diff --git a/src/Microsoft.ComponentDetection.Detectors/npm/NpmComponentDetector.cs b/src/Microsoft.ComponentDetection.Detectors/npm/NpmComponentDetector.cs index d7e79f6cc..f97216b83 100644 --- a/src/Microsoft.ComponentDetection.Detectors/npm/NpmComponentDetector.cs +++ b/src/Microsoft.ComponentDetection.Detectors/npm/NpmComponentDetector.cs @@ -38,7 +38,7 @@ public NpmComponentDetector( public override IEnumerable SupportedComponentTypes { get; } = [ComponentType.Npm]; - public override int Version { get; } = 3; + public override int Version { get; } = 4; protected override async Task OnFileFoundAsync(ProcessRequest processRequest, IDictionary detectorArgs, CancellationToken cancellationToken = default) { @@ -82,20 +82,6 @@ protected virtual bool ProcessPackageJson(string filePath, ISingleFileComponentR return false; } - // Check for VS Code extensions - // See https://code.visualstudio.com/api/working-with-extensions/publishing-extension#visual-studio-code-compatibility - var containsVsCodeEngine = false; - if (packageJson.Engines is not null && packageJson.Engines.ContainsKey("vscode")) - { - containsVsCodeEngine = true; - } - - if (containsVsCodeEngine) - { - this.Logger.LogInformation("{NpmPackageName} found at path {NpmPackageLocation} represents a built-in VS Code extension. This package will not be registered.", name, filePath); - return false; - } - var author = this.GetAuthor(packageJson.Author, name, filePath); var npmComponent = new NpmComponent(name, version, author: author); diff --git a/test/Microsoft.ComponentDetection.Detectors.Tests/NpmDetectorTests.cs b/test/Microsoft.ComponentDetection.Detectors.Tests/NpmDetectorTests.cs index 6081e5e0c..7a128e1fc 100644 --- a/test/Microsoft.ComponentDetection.Detectors.Tests/NpmDetectorTests.cs +++ b/test/Microsoft.ComponentDetection.Detectors.Tests/NpmDetectorTests.cs @@ -227,7 +227,7 @@ public async Task TestNpmDetector_NodeEngineDoesNotCauseSkippedPackageAsync() } [TestMethod] - public async Task TestNpmDetector_VSCodeEngineCausesSkippedPackageAsync() + public async Task TestNpmDetector_VSCodeEnginePackageIsDetectedAsync() { var componentName = GetRandomString(); var version = NewRandomVersion(); @@ -239,7 +239,11 @@ public async Task TestNpmDetector_VSCodeEngineCausesSkippedPackageAsync() .ExecuteDetectorAsync(); scanResult.ResultCode.Should().Be(ProcessingResultCode.Success); var detectedComponents = componentRecorder.GetDetectedComponents(); - detectedComponents.Should().BeEmpty(); + detectedComponents.Should().ContainSingle(); + detectedComponents.Single().Component.Type.Should().Be(ComponentType.Npm); + var detectedNpmComponent = (NpmComponent)detectedComponents.Single().Component; + detectedNpmComponent.Name.Should().Be(componentName); + detectedNpmComponent.Version.Should().Be(version); } [TestMethod] @@ -256,7 +260,11 @@ public async Task TestNpmDetector_EnginesAsArray_VSCodeEngine() .ExecuteDetectorAsync(); scanResult.ResultCode.Should().Be(ProcessingResultCode.Success); var detectedComponents = componentRecorder.GetDetectedComponents(); - detectedComponents.Should().BeEmpty(); + detectedComponents.Should().ContainSingle(); + detectedComponents.Single().Component.Type.Should().Be(ComponentType.Npm); + var detectedNpmComponent = (NpmComponent)detectedComponents.Single().Component; + detectedNpmComponent.Name.Should().Be(packageName); + detectedNpmComponent.Version.Should().Be(packageVersion); } [TestMethod]