Skip to content

Commit 4355601

Browse files
authored
chore: remove JS lib in HTML scanning [IDE-1179] (#635)
This feature was deprecated.
1 parent b4c0e5a commit 4355601

File tree

12 files changed

+4
-448
lines changed

12 files changed

+4
-448
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## [2.23.0]
44
- Removed Snyk Code Quality feature. All related settings, configurations, and UI elements have been removed.
5+
- Removed scanning for vulnerabilities in JavaScript libraries referenced via CDN in HTML files.
56

67
## [2.22.0]
78
- Support early access of Ignores Approval Workflow
-114 KB
Binary file not shown.

package-lock.json

Lines changed: 0 additions & 145 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,6 @@
557557
"axios": "^1.8.3",
558558
"glob": "^9.3.5",
559559
"he": "^1.2.0",
560-
"htmlparser2": "^7.2.0",
561560
"http-proxy-agent": "^5.0.0",
562561
"https-proxy-agent": "^5.0.0",
563562
"lodash": "^4.17.21",
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
export const TYPESCRIPT_FILE_REGEX = new RegExp('\\.tsx?$');
22
export const JAVASCRIPT_FILE_REGEX = new RegExp('\\.jsx?$');
3-
export const HTML_FILE_REGEX = new RegExp('\\.html?$');
43
export const TYPESCRIPT = 'typescript';
54
export const TYPESCRIPT_REACT = 'typescriptreact';
65
export const JAVASCRIPT = 'javascript';
76
export const JAVASCRIPT_REACT = 'javascriptreact';
8-
export const HTML = 'html';
97
export const PJSON = 'json';

src/snyk/common/parsing.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import npmValidPackageName from 'validate-npm-package-name';
22
import {
3-
HTML,
4-
HTML_FILE_REGEX,
53
JAVASCRIPT,
64
JAVASCRIPT_FILE_REGEX,
75
JAVASCRIPT_REACT,
@@ -18,8 +16,6 @@ export function getSupportedLanguage(fileName: string, languageId: string): Lang
1816
return Language.TypeScript;
1917
} else if (languageId === JAVASCRIPT || languageId === JAVASCRIPT_REACT || JAVASCRIPT_FILE_REGEX.test(fileName)) {
2018
return Language.JavaScript;
21-
} else if (languageId === HTML || HTML_FILE_REGEX.test(fileName)) {
22-
return Language.HTML;
2319
} else if (languageId === PJSON && fileName.endsWith('package.json')) {
2420
return Language.PJSON;
2521
}

src/snyk/common/services/moduleParserProvider.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { BabelParser } from '../../snykOss/services/vulnerabilityCount/parsers/babelParser';
2-
import { HtmlParser } from '../../snykOss/services/vulnerabilityCount/parsers/htmlParser';
32
import { ModuleParser } from '../../snykOss/services/vulnerabilityCount/parsers/moduleParser';
43
import { PackageJsonParser } from '../../snykOss/services/vulnerabilityCount/parsers/packageJsonParser';
54
import { IConfiguration } from '../configuration/configuration';
@@ -13,8 +12,6 @@ export class ModuleParserProvider {
1312
} else if (language === Language.PJSON) {
1413
const cliParameters = configuration.getAdditionalCliParameters();
1514
return new PackageJsonParser(logger, cliParameters);
16-
} else if (language === Language.HTML) {
17-
return new HtmlParser();
1815
}
1916

2017
return undefined;

src/snyk/common/types.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { JAVASCRIPT, TYPESCRIPT, HTML, PJSON } from './constants/languageConsts';
1+
import { JAVASCRIPT, TYPESCRIPT, PJSON } from './constants/languageConsts';
22

33
export enum Language {
44
TypeScript,
55
JavaScript,
6-
HTML,
76
PJSON,
87
}
98
export type OssRange = {
@@ -31,8 +30,6 @@ export function languageToString(language: Language): string {
3130
return TYPESCRIPT;
3231
case Language.JavaScript:
3332
return JAVASCRIPT;
34-
case Language.HTML:
35-
return HTML;
3633
case Language.PJSON:
3734
return PJSON;
3835
}

src/snyk/snykOss/providers/ossVulnerabilityCountProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export class OssVulnerabilityCountProvider {
3131
hasCount: false,
3232
};
3333

34-
const processFile = [Language.TypeScript, Language.JavaScript, Language.PJSON, Language.HTML].includes(language);
34+
const processFile = [Language.TypeScript, Language.JavaScript, Language.PJSON].includes(language);
3535
if (processFile) {
3636
const uri = this.uriAdapter.file(fileName).toString();
3737
const doc: LSPTextDocument = this.textDocumentAdapter.create(uri, languageToString(language), 1, '');

src/snyk/snykOss/services/vulnerabilityCount/ossVulnerabilityCountService.ts

Lines changed: 1 addition & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { ModuleParserProvider } from '../../../common/services/moduleParserProvi
66
import { Language } from '../../../common/types';
77
import { IVSCodeLanguages } from '../../../common/vscode/languages';
88
import {
9-
Diagnostic,
109
DiagnosticCollection,
1110
Disposable,
1211
TextDocument,
@@ -19,7 +18,7 @@ import { DIAGNOSTICS_OSS_COLLECTION_NAME } from '../../../snykCode/constants/ana
1918
import { EditorDecorator } from '../../editor/editorDecorator';
2019
import { OssService } from '../../ossService';
2120
import { OssVulnerabilityCountProvider } from '../../providers/ossVulnerabilityCountProvider';
22-
import { ImportedModule, ModuleVulnerabilityCount, ModuleVulnerabilityCountSeverity } from './importedModule';
21+
import { ImportedModule, ModuleVulnerabilityCount } from './importedModule';
2322
import { VulnerabilityCountEmitter, VulnerabilityCountEvents } from './vulnerabilityCountEmitter';
2423

2524
export class OssVulnerabilityCountService implements Disposable {
@@ -120,52 +119,13 @@ export class OssVulnerabilityCountService implements Disposable {
120119

121120
emitter.on(VulnerabilityCountEvents.Done, (modules: ModuleVulnerabilityCount[]) => {
122121
this.editorDecorator.setScanDoneDecorations(fileName, modules);
123-
// TODO: delete this and related code if we move HTML diagnostics to Language Server
124-
// Update diagnostics only for HTML files; for other files, diagnostics are provided by Language Server
125-
if (getSupportedLanguage(fileName, languageId) === Language.HTML) {
126-
this.updateDiagnostics(document, modules);
127-
}
128122
});
129123

130124
// Start
131125
void this.getImportedModules(fileName, document.getText(), supportedLanguage, emitter);
132126
return true;
133127
}
134128

135-
private updateDiagnostics(document: TextDocument, modules: ModuleVulnerabilityCount[]): void {
136-
if (!this.diagnostics) {
137-
return;
138-
}
139-
140-
const diagnostics: Diagnostic[] = [];
141-
for (const module of modules) {
142-
if (!module.hasCount || !module.range) {
143-
continue;
144-
}
145-
146-
const diagnosticMessage = this.getDiagnosticMessage(module);
147-
if (!diagnosticMessage.length) {
148-
continue;
149-
}
150-
151-
const range = this.languages.createRange(
152-
module.range.start.line - 1,
153-
module.range.start.column,
154-
module.range.end.line - 1,
155-
module.range.end.column,
156-
);
157-
158-
const diagnostic = this.languages.createDiagnostic(range, diagnosticMessage, 1); // Warning severity
159-
diagnostics.push({
160-
...diagnostic,
161-
source: DIAGNOSTICS_OSS_COLLECTION_NAME,
162-
code: module.mostSevereVulnerabilityId,
163-
});
164-
}
165-
166-
this.diagnostics.set(document.uri, diagnostics);
167-
}
168-
169129
private shouldProcessFile(fileName: string, language: Language): boolean {
170130
if ([Language.TypeScript, Language.JavaScript, Language.PJSON].includes(language)) {
171131
const ossResult = this.vulnerabilityCountProvider.getResultArray();
@@ -215,41 +175,4 @@ export class OssVulnerabilityCountService implements Disposable {
215175

216176
return parser.getModules(fileName, source, language);
217177
}
218-
219-
private getDiagnosticMessage(module: ModuleVulnerabilityCount): string {
220-
if (!module.count) {
221-
return '';
222-
}
223-
224-
let message = `Dependency ${module.name}${module.version ? `@${module.version}` : ''} has `;
225-
message += this.getSeverityCountMessage(
226-
[
227-
ModuleVulnerabilityCountSeverity.Critical,
228-
ModuleVulnerabilityCountSeverity.High,
229-
ModuleVulnerabilityCountSeverity.Medium,
230-
ModuleVulnerabilityCountSeverity.Low,
231-
],
232-
module,
233-
);
234-
235-
return message;
236-
}
237-
238-
private getSeverityCountMessage(
239-
severities: ModuleVulnerabilityCountSeverity[],
240-
module: ModuleVulnerabilityCount,
241-
): string {
242-
if (!module.severityCounts) {
243-
return module.count ? module.count : '';
244-
}
245-
246-
const content: string[] = [];
247-
for (const severity of severities) {
248-
if (module.severityCounts[severity] > 0) {
249-
content.push(`${module.severityCounts[severity]} ${severity}`);
250-
}
251-
}
252-
253-
return content.join(', ');
254-
}
255178
}

0 commit comments

Comments
 (0)