mirror of
https://github.com/AikidoSec/safe-chain.git
synced 2026-05-26 20:20:49 +00:00
Some more cleanup
This commit is contained in:
parent
2b1247cf36
commit
c696386825
3 changed files with 33 additions and 3 deletions
|
|
@ -58,12 +58,16 @@ function filterJsonMetadataFiles(
|
|||
}
|
||||
|
||||
let modified = false;
|
||||
const loggedVersions = new Set();
|
||||
json.files = json.files.filter((/** @type {any} */ file) => {
|
||||
const version = getPackageVersionFromMetadataFile(file, metadataUrl);
|
||||
|
||||
if (version && isNewlyReleasedPackage(packageName, version)) {
|
||||
modified = true;
|
||||
logSuppressedVersion(packageName, version);
|
||||
if (!loggedVersions.has(version)) {
|
||||
logSuppressedVersion(packageName, version);
|
||||
loggedVersions.add(version);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -118,12 +122,16 @@ function filterJsonMetadataUrls(
|
|||
}
|
||||
|
||||
let modified = false;
|
||||
const loggedVersions = new Set();
|
||||
json.urls = json.urls.filter((/** @type {any} */ file) => {
|
||||
const version = getPackageVersionFromMetadataFile(file, metadataUrl);
|
||||
|
||||
if (version && isNewlyReleasedPackage(packageName, version)) {
|
||||
modified = true;
|
||||
logSuppressedVersion(packageName, version);
|
||||
if (!loggedVersions.has(version)) {
|
||||
logSuppressedVersion(packageName, version);
|
||||
loggedVersions.add(version);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,19 @@
|
|||
/**
|
||||
* Parses a PyPI metadata URL and returns the package name and API type.
|
||||
*
|
||||
* @example
|
||||
* parsePipMetadataUrl("https://pypi.org/simple/requests/")
|
||||
* // => { packageName: "requests", type: "simple" }
|
||||
*
|
||||
* parsePipMetadataUrl("https://pypi.org/pypi/requests/json")
|
||||
* // => { packageName: "requests", type: "json" }
|
||||
*
|
||||
* parsePipMetadataUrl("https://pypi.org/pypi/requests/2.28.1/json")
|
||||
* // => { packageName: "requests", type: "json" }
|
||||
*
|
||||
* parsePipMetadataUrl("https://files.pythonhosted.org/packages/requests-2.28.1.tar.gz")
|
||||
* // => { packageName: undefined, type: undefined }
|
||||
*
|
||||
* @param {string} url
|
||||
* @returns {{ packageName: string | undefined, type: "simple" | "json" | undefined }}
|
||||
*/
|
||||
|
|
@ -29,7 +44,7 @@ export function parsePipMetadataUrl(url) {
|
|||
if (
|
||||
pathSegments.length >= 3 &&
|
||||
pathSegments[0] === "pypi" &&
|
||||
pathSegments[2] === "json" &&
|
||||
pathSegments[pathSegments.length - 1] === "json" &&
|
||||
pathSegments[1]
|
||||
) {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -21,6 +21,13 @@ describe("parsePipPackageUrl", () => {
|
|||
});
|
||||
});
|
||||
|
||||
it("parses per-version json metadata URLs", () => {
|
||||
assert.deepEqual(
|
||||
parsePipMetadataUrl("https://pypi.org/pypi/requests/2.28.1/json"),
|
||||
{ packageName: "requests", type: "json" }
|
||||
);
|
||||
});
|
||||
|
||||
it("decodes encoded metadata package names", () => {
|
||||
assert.deepEqual(
|
||||
parsePipMetadataUrl("https://pypi.org/simple/foo-bar%5Fbaz/"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue