From 453c40aad97a096c38249950a868630bf5f01f1b Mon Sep 17 00:00:00 2001 From: Erlend Oftedal Date: Tue, 12 Mar 2024 15:53:26 +0100 Subject: [PATCH] Add scanning of filenames in URLs --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- src/retireWrapper.ts | 26 +++++++++++++------------- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f01753c..a2ea48e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.1.1 + +Add file name scanning + ## 1.1.0 Add AST scanning diff --git a/package-lock.json b/package-lock.json index 42543ab..f9c4f93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "retire-site-scanner", - "version": "1.1.0", + "version": "1.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "retire-site-scanner", - "version": "1.1.0", + "version": "1.1.1", "license": "Apache-2.0", "dependencies": { "cacheable-lookup": "^7.0.0", diff --git a/package.json b/package.json index 3759800..4e043e1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "author": "Erlend Oftedal ", "name": "retire-site-scanner", - "version": "1.1.0", + "version": "1.1.1", "license": "Apache-2.0", "description": "A scanner for checking a web site using retire.js", "main": "dist/index.js", diff --git a/src/retireWrapper.ts b/src/retireWrapper.ts index 413e7a5..50f114b 100644 --- a/src/retireWrapper.ts +++ b/src/retireWrapper.ts @@ -28,31 +28,31 @@ async function loadRetireJSRepo() { function scanUri(repo: Repository, uri: string): Array { const uriResults = retire.scanUri(uri, repo); - return convertResults(uriResults || [], "scanning the URL"); + const fileName = uri.split("/").slice(-1)[0].split("?")[0]; + const fileNameResults = retire.scanFileName(fileName, repo); + return convertResults(uriResults.concat(fileNameResults), "scanning the URL"); } function scanContent(repo: Repository, contents: string): Array { const contentResults = retire.scanFileContent(contents, repo, hasher); const deepScanResults = deepScan(contents, repo); - const combined = contentResults.concat(deepScanResults).reduce((acc, c) => { + const combined = contentResults.concat(deepScanResults); + return convertResults(combined || [], "scanning content"); +} + +function convertResults( + data: Component[], + detectedBy: string, +): Array { + const res = data.reduce((acc, c) => { if ( !acc.some((a) => a.component === c.component && a.version === c.version) ) { + c.detection = c.detection ?? detectedBy; acc.push(c); } return acc; }, [] as Component[]); - - return convertResults(combined || [], "scanning content"); -} - -function convertResults( - res: Component[], - detectedBy: string, -): Array { - res.forEach((r) => { - r.detection = r.detection ?? detectedBy; - }); return res; }