diff --git a/README.md b/README.md index add02a1..a9773a3 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,8 @@ In all cases, Sonatype IQ Server versions 150 and newer have been confirmed as s - [Known Security Issues](#known-security-issues) - [Open Source License(s)](#open-source-licenses) - [Additional Feature Support](#additional-feature-support) +- [Caveats](#caveats) + - [PyPi Packages with No Source Distribution](#pypi-packages-with-no-source-distribution) - [Development](#development) - [Uninstallation](#uninstallation) - [Version History](#version-history) @@ -67,7 +69,7 @@ In all cases, Sonatype IQ Server versions 150 and newer have been confirmed as s | NPM JS | Javascript | ✅ | `https://www.npmjs.com/` | ✅ | | NuGet Gallery | .NET | ✅ | `https://www.nuget.org/` | ✅ | | Packagist | PHP | ✅ | `https://packagist.org/` | ✅ | -| PyPI | Python | ✅ | `https://pypi.org/` | ✅ | +| PyPI | Python | ✅ ^3 | `https://pypi.org/` | ✅ | | RubGems | Ruby | ✅ | `https://rubygems.org/` | ✅ | | Spring.io | Java | ❌ ^2 | `https://repo.spring.io/list/` | N/A | @@ -75,7 +77,7 @@ _Notes:_ 1. See issue [#36](https://github.com/sonatype-nexus-community/sonatype-platform-browser-extension/issues/36) 2. Run on a public instance of jFrog Artifactory - support coming soon -3. Where the Public Registry maintains pages for all versions, navigation to specific versions can be supported +3. By default we lookup the Source Distribution. Where no Source Distribution is published we lookup the first Built Distribution - this can lead to an incomplete view of risk - [read more](#pypi-packages-with-no-source-distribution) ### Private Hosted Registries @@ -223,6 +225,18 @@ Current and future additional features are available based on the additional cap - [Extended Observed License Detections](https://help.sonatype.com/iqserver/configuring/advanced-legal-pack-extended-observed-license-detections) - When enabled, the browser extenstion shows the observed licenses detected for that component. +## Caveats + +### PyPi Packages with No Source Distribution + +There are a few examples of projects published to PyPi (such as [mediapipe](https://pypi.org/project/mediapipe/)) that have not published a Source Distribution. + +By default, when the Sonatype Platform Browser Extension looks up data on PyPi packages, we default to looking up information based on it's Source Distribution - +this has no consideration as to your Python Version or Architecture. + +When looking up data based on a Built Distribution, this can include the Python Version and/or Architecture, and this may not provide an accurate representation +of the risks associated with your use of the Package if your Python Version and/or Architrecture differ from the first Build Distribution in the list. + ## Development We use Node 18 and Yarn 1.22.x. diff --git a/src/utils/PageParsing/PyPI.test.ts b/src/utils/PageParsing/PyPI.test.ts index 859d44b..424b888 100644 --- a/src/utils/PageParsing/PyPI.test.ts +++ b/src/utils/PageParsing/PyPI.test.ts @@ -102,4 +102,21 @@ describe('PyPI Page Parsing', () => { expect(packageURL?.version).toBe('19.2.0') expect(packageURL?.qualifiers).toEqual({ extension: 'tar.bz2' }) }) + + test('should parse valid PyPI page where there is no SOURCE distribution', () => { + const html = readFileSync(join(__dirname, 'testdata/pypi-mediapipe-0.10.14.html')) + + window.document.body.innerHTML = html.toString() + + const packageURL = getArtifactDetailsFromDOM( + ensure(repoType), + 'https://pypi.org/project/mediapipe/0.10.14/' + ) + + expect(packageURL).toBeDefined() + expect(packageURL?.type).toBe(FORMATS.pypi) + expect(packageURL?.name).toBe('mediapipe') + expect(packageURL?.version).toBe('0.10.14') + expect(packageURL?.qualifiers).toEqual({ extension: 'whl', qualifier: 'cp312-cp312-win_amd64' }) + }) }) diff --git a/src/utils/PageParsing/PyPI.ts b/src/utils/PageParsing/PyPI.ts index e30cc4c..3173c8c 100644 --- a/src/utils/PageParsing/PyPI.ts +++ b/src/utils/PageParsing/PyPI.ts @@ -19,11 +19,8 @@ import { FORMATS, REPOS, REPO_TYPES } from '../Constants' import { generatePackageURL } from './PurlUtils' const PYPI_DEFAULT_EXTENSION = 'tar.gz' -const PYPI_KNOWN_SOURCE_DISTRIBUTION_EXTENSIONS = [ - PYPI_DEFAULT_EXTENSION, - 'tar.bz2' -] -const PYPI_EXTENSION_SELECTOR = '#files > div.file div.card A:nth-child(1)' +const PYPI_KNOWN_SOURCE_DISTRIBUTION_EXTENSIONS = [PYPI_DEFAULT_EXTENSION, 'tar.bz2'] +const PYPI_EXTENSION_SELECTOR = '#files > div.file div.file__card A:nth-child(1)' const parsePyPIURL = (url: string): PackageURL | undefined => { const repoType = REPO_TYPES.find((e) => e.repoID == REPOS.pypiOrg) @@ -36,28 +33,39 @@ const parsePyPIURL = (url: string): PackageURL | undefined => { const pageVersion = $(repoType.versionDomPath).text().trim().split(' ')[1] console.debug(`URL Version: ${pathResult.groups.version}, Page Version: ${pageVersion}`) const firstDistributionFilename = $(PYPI_EXTENSION_SELECTOR).first().text().trim() - let extension = '' - if (firstDistributionFilename !== undefined) { - // Loop all known source distribution extensions checking if the first Source Distribution matches - // If it does, use that known extension - for (const i in PYPI_KNOWN_SOURCE_DISTRIBUTION_EXTENSIONS) { - if (firstDistributionFilename.endsWith(PYPI_KNOWN_SOURCE_DISTRIBUTION_EXTENSIONS[i])) { - extension = PYPI_KNOWN_SOURCE_DISTRIBUTION_EXTENSIONS[i] - break - } + let candidateExtension: string | undefined = undefined + for (const i in PYPI_KNOWN_SOURCE_DISTRIBUTION_EXTENSIONS) { + if (firstDistributionFilename.endsWith(PYPI_KNOWN_SOURCE_DISTRIBUTION_EXTENSIONS[i])) { + candidateExtension = PYPI_KNOWN_SOURCE_DISTRIBUTION_EXTENSIONS[i] + break } + } + let extension + if (candidateExtension === undefined) { + extension = firstDistributionFilename.split('.').pop() as string + } else { + extension = candidateExtension + } - // If we still haven't identified an extension for the Source Distribution, pop the last part of the filename - // as the extension - if (extension === '' && !firstDistributionFilename.endsWith(PYPI_DEFAULT_EXTENSION)) { - extension = firstDistributionFilename.split('.').pop() as string - } + console.debug( + `Parsing ${firstDistributionFilename} - given: Artifact ID = ${pathResult.groups.artifactId}, Version = ${pageVersion}, Extension = ${extension}` + ) + const start = pathResult.groups.artifactId.length + pageVersion.length + 2 + const end = firstDistributionFilename.length - extension.length - 1 + const qualifier = firstDistributionFilename.substring(start, end) + + const qualifiers = { + extension: extension, + } + if (qualifier.length > 1) { + qualifiers['qualifier'] = qualifier } + return generatePackageURL( FORMATS.pypi, pathResult.groups.artifactId, pathResult.groups.version !== undefined ? pathResult.groups.version : pageVersion, - { extension: extension } + qualifiers ) } } else { diff --git a/src/utils/PageParsing/testdata/CentralSonatypeCom.html b/src/utils/PageParsing/testdata/CentralSonatypeCom.html index b7fa3e2..c33d9a3 100644 --- a/src/utils/PageParsing/testdata/CentralSonatypeCom.html +++ b/src/utils/PageParsing/testdata/CentralSonatypeCom.html @@ -1,16 +1,16 @@ -Maven Central: org.cyclonedx:cyclonedx-core-java:7.3.2
Maven Central Repository

cyclonedx-core-java

Used in
Loading...
components
Loading...
Loading...
Loading...
\ No newline at end of file +
Sonatype Developer For Free

Get recommended versions right in your IDE with SCA built for teams

Sonatype Developer Team makes coding faster and safer, and provides real-time guidance to developers to make your job easier.

Try Developer Team Edition For Free
OSS Index
Loading...
View

Metadata

1 year ago
Licenses
  • Apache-2.0
12.3 kB



Known Contributors

Steve SpringettAlex AlzateJeffry Hesse
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/MVNRepository.html b/src/utils/PageParsing/testdata/MVNRepository.html index 65b82a8..34da82e 100644 --- a/src/utils/PageParsing/testdata/MVNRepository.html +++ b/src/utils/PageParsing/testdata/MVNRepository.html @@ -1 +1 @@ -Just a moment...
\ No newline at end of file +Just a moment...
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/central-s-c-android.html b/src/utils/PageParsing/testdata/central-s-c-android.html index 6a8edd7..cb81009 100644 --- a/src/utils/PageParsing/testdata/central-s-c-android.html +++ b/src/utils/PageParsing/testdata/central-s-c-android.html @@ -1,16 +1,16 @@ -Maven Central: com.fpliu.ndk.pkg.prefab.android.21:curl:7.82.0
Maven Central Repository

curl

Used in
Loading...
components
Loading...
Loading...
Loading...
\ No newline at end of file +
Sonatype Developer For Free

Get recommended versions right in your IDE with SCA built for teams

Sonatype Developer Team makes coding faster and safer, and provides real-time guidance to developers to make your job easier.

Try Developer Team Edition For Free
OSS Index
Loading...
View

Metadata

2 years ago
Licenses
  • curl License
12.3 kB


External Resources


Known Contributors

Daniel Stenberg
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/central-s-c-commons-io.html b/src/utils/PageParsing/testdata/central-s-c-commons-io.html index e9b2fe5..3e60cd4 100644 --- a/src/utils/PageParsing/testdata/central-s-c-commons-io.html +++ b/src/utils/PageParsing/testdata/central-s-c-commons-io.html @@ -1,17 +1,17 @@ -Maven Central: commons-io:commons-io:2.15.1
Maven Central Repository

commons-io

Used in
Loading...
components
Loading...
Loading...
Loading...
\ No newline at end of file +
Sonatype Developer For Free

Get recommended versions right in your IDE with SCA built for teams

Sonatype Developer Team makes coding faster and safer, and provides real-time guidance to developers to make your job easier.

Try Developer Team Edition For Free
Sonatype Logo

Sonatype Safety Rating

An aggregate rating designed to represent a project’s readiness against vulnerabilities.
1 out of 10
How did we get this score?
OSS Index
Loading...
View

Metadata

9 months ago
Licenses
  • Apache-2.0
12.3 kB



Known Contributors

Dominik StadlerEmmanuel BourgAlban PeignierMartin GrigorovArturo BernalMarcelo LiberatoAndy LehaneJim HarringtonJames UrieAdam RetterThomas LedouxMasato TezukaRahul AkolkarNathan BeyerMagnus GrimsellIan SpringerChris EldredgeFrank W. ZammettiJason AndersonScott SandersMartin CooperJochen WiedmannGary GregoryJukka ZittingHenri YandellStephen ColebourneJeremias MaerkiKristian RosenvoldNiall PembertonMatthew HawthorneNicola Ken BarozzidIon GillardRob Oxspring
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/central-s-c-cool-jconon.html b/src/utils/PageParsing/testdata/central-s-c-cool-jconon.html index 139a45e..0cb6879 100644 --- a/src/utils/PageParsing/testdata/central-s-c-cool-jconon.html +++ b/src/utils/PageParsing/testdata/central-s-c-cool-jconon.html @@ -1,16 +1,16 @@ -Maven Central: it.cnr.si.cool.jconon:cool-jconon:5.2.44
Maven Central Repository

cool-jconon

Used in
Loading...
components
Loading...
Loading...
Loading...
\ No newline at end of file +
Sonatype Developer For Free

Get recommended versions right in your IDE with SCA built for teams

Sonatype Developer Team makes coding faster and safer, and provides real-time guidance to developers to make your job easier.

Try Developer Team Edition For Free
OSS Index
Loading...
View

Metadata

11 months ago
Licenses
  • GNU AFFERO GENERAL PUBLIC LICENSE
12.3 kB


External Resources


Known Contributors

Fabrizio PierleoniFrancesco UlianaRaffaele PaganoMarco Spasiano
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/central-s-c-custom-properties-maven-plugin.html b/src/utils/PageParsing/testdata/central-s-c-custom-properties-maven-plugin.html index d704943..07d85a0 100644 --- a/src/utils/PageParsing/testdata/central-s-c-custom-properties-maven-plugin.html +++ b/src/utils/PageParsing/testdata/central-s-c-custom-properties-maven-plugin.html @@ -1,16 +1,16 @@ -Maven Central: net.sf.czsem:custom-properties-maven-plugin:4.0.3
Maven Central Repository

custom-properties-maven-plugin

Used in
Loading...
components
Loading...
Loading...
Loading...
\ No newline at end of file +
Sonatype Developer For Free

Get recommended versions right in your IDE with SCA built for teams

Sonatype Developer Team makes coding faster and safer, and provides real-time guidance to developers to make your job easier.

Try Developer Team Edition For Free
OSS Index
Loading...
View

Metadata

11 months ago
Licenses
  • Apache License, Version 2.0
12.3 kB



Known Contributors

Jan Dedek
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/central-s-c-jakarta-ivt.html b/src/utils/PageParsing/testdata/central-s-c-jakarta-ivt.html index 335bac1..3af3bb7 100644 --- a/src/utils/PageParsing/testdata/central-s-c-jakarta-ivt.html +++ b/src/utils/PageParsing/testdata/central-s-c-jakarta-ivt.html @@ -1,16 +1,16 @@ -Maven Central: com.ibm.mq:wmq.jakarta.jmsra.ivt:9.3.3.1
Maven Central Repository

wmq.jakarta.jmsra.ivt

Used in
Loading...
components
Loading...
Loading...
Loading...
\ No newline at end of file +
Sonatype Developer For Free

Get recommended versions right in your IDE with SCA built for teams

Sonatype Developer Team makes coding faster and safer, and provides real-time guidance to developers to make your job easier.

Try Developer Team Edition For Free
OSS Index
Loading...
View

Metadata

11 months ago
Licenses
  • IBM International Program License Agreement
12.3 kB


External Resources


Known Contributors

IBM MQ Development
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/central-s-c-log4j-parent.html b/src/utils/PageParsing/testdata/central-s-c-log4j-parent.html index 48deaa2..7b05c25 100644 --- a/src/utils/PageParsing/testdata/central-s-c-log4j-parent.html +++ b/src/utils/PageParsing/testdata/central-s-c-log4j-parent.html @@ -1,16 +1,16 @@ -Maven Central: org.apache.logging.log4j:log4j:3.0.0-alpha1
Maven Central Repository

log4j

Used in
Loading...
components
Loading...
Loading...
Loading...
\ No newline at end of file +
Sonatype Developer For Free

Get recommended versions right in your IDE with SCA built for teams

Sonatype Developer Team makes coding faster and safer, and provides real-time guidance to developers to make your job easier.

Try Developer Team Edition For Free
OSS Index
Loading...
View

Metadata

1 year ago
Licenses
  • Apache-2.0
12.3 kB



Known Contributors

Bruce BrouwerMatt SickerScott DeboyCarter KozakRaman GuptaGary GregoryRemko PopmaMikael StåldalPiotr P. KarwaszVolkan YazıcıChristian GrobmeierRalph GoersRon GrabowskiNick Williams
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/central-s-c-scalacheck-bundle.html b/src/utils/PageParsing/testdata/central-s-c-scalacheck-bundle.html index f64ea24..ea194c2 100644 --- a/src/utils/PageParsing/testdata/central-s-c-scalacheck-bundle.html +++ b/src/utils/PageParsing/testdata/central-s-c-scalacheck-bundle.html @@ -1,16 +1,16 @@ -Maven Central: org.scalatestplus:scalacheck-1-17_sjs1_3:3.2.17.0
Maven Central Repository

scalacheck-1-17_sjs1_3

Used in
Loading...
components
Loading...
Loading...
Loading...
\ No newline at end of file +</project>
Sonatype Developer For Free

Get recommended versions right in your IDE with SCA built for teams

Sonatype Developer Team makes coding faster and safer, and provides real-time guidance to developers to make your job easier.

Try Developer Team Edition For Free
OSS Index
Loading...
View

Metadata

11 months ago
Licenses
  • Apache-2.0
12.3 kB


External Resources


Known Contributors

Bill VennersChua Chee Seng
\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/conanio-libxft-2.3.6.html b/src/utils/PageParsing/testdata/conanio-libxft-2.3.6.html index 2de52bc..6c1e65d 100644 --- a/src/utils/PageParsing/testdata/conanio-libxft-2.3.6.html +++ b/src/utils/PageParsing/testdata/conanio-libxft-2.3.6.html @@ -1,20 +1,2 @@ -libxft - Conan 2.0: C and C++ Open Source Package Manager

libxft/2.3.6

X FreeType library
Recipe info
X11
2024-01-17

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
-libxft/2.3.6

Using libxft

Note

If you are a new Conan user, we recommend reading the how to consume packages tutorial.

If you need additional assistance, please ask a question in the Conan Center Index repository.

Simplest use case consuming this recipe and assuming CMake as your local build tool:

[requires]
-libxft/2.3.6
-[generators]
-CMakeDeps
-CMakeToolchain
-[layout]
-cmake_layout
from conan import ConanFile
-from conan.tools.cmake import cmake_layout
-
-
-class ExampleRecipe(ConanFile):
-    settings = "os", "compiler", "build_type", "arch"
-    generators = "CMakeDeps", "CMakeToolchain"
-
-    def requirements(self):
-        self.requires("libxft/2.3.6")
-
-    def layout(self):
-        cmake_layout(self)

Now, you can run this Conan command to locally install (and build if necessary) this recipe and its dependencies (if any):

$ conan install conanfile.txt --build=missing


\ No newline at end of file +libxft - Conan 2.0: C and C++ Open Source Package Manager

libxft/2.3.6

X FreeType library
Recipe info
X11
2024-01-17

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
+libxft/2.3.6

Using libxft

Loading ...
Loading...

\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/conanio-libxft-2.3.8.html b/src/utils/PageParsing/testdata/conanio-libxft-2.3.8.html index 60e2638..084cb7f 100644 --- a/src/utils/PageParsing/testdata/conanio-libxft-2.3.8.html +++ b/src/utils/PageParsing/testdata/conanio-libxft-2.3.8.html @@ -1,20 +1,2 @@ -libxft - Conan 2.0: C and C++ Open Source Package Manager

libxft/2.3.8

X FreeType library
Recipe info
X11
2024-01-17

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
-libxft/2.3.8

Using libxft

Note

If you are a new Conan user, we recommend reading the how to consume packages tutorial.

If you need additional assistance, please ask a question in the Conan Center Index repository.

Simplest use case consuming this recipe and assuming CMake as your local build tool:

[requires]
-libxft/2.3.8
-[generators]
-CMakeDeps
-CMakeToolchain
-[layout]
-cmake_layout
from conan import ConanFile
-from conan.tools.cmake import cmake_layout
-
-
-class ExampleRecipe(ConanFile):
-    settings = "os", "compiler", "build_type", "arch"
-    generators = "CMakeDeps", "CMakeToolchain"
-
-    def requirements(self):
-        self.requires("libxft/2.3.8")
-
-    def layout(self):
-        cmake_layout(self)

Now, you can run this Conan command to locally install (and build if necessary) this recipe and its dependencies (if any):

$ conan install conanfile.txt --build=missing


\ No newline at end of file +libxft - Conan 2.0: C and C++ Open Source Package Manager

libxft/2.3.8

X FreeType library
Recipe info
X11
2024-01-17

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
+libxft/2.3.8

Using libxft

Loading ...
Loading...

\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/conanio-proj-8.2.1.html b/src/utils/PageParsing/testdata/conanio-proj-8.2.1.html index 5ab53ff..a7082d1 100644 --- a/src/utils/PageParsing/testdata/conanio-proj-8.2.1.html +++ b/src/utils/PageParsing/testdata/conanio-proj-8.2.1.html @@ -1,39 +1,2 @@ -proj - Conan 2.0: C and C++ Open Source Package Manager

proj/8.2.1

Cartographic Projections and Coordinate Transformations Library.
Recipe info
2023-12-04

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
-proj/8.2.1

Using proj

Note

If you are a new Conan user, we recommend reading the how to consume packages tutorial.

If you need additional assistance, please ask a question in the Conan Center Index repository.

Simplest use case consuming this recipe and assuming CMake as your local build tool:

[requires]
-proj/8.2.1
-[generators]
-CMakeDeps
-CMakeToolchain
-[layout]
-cmake_layout
from conan import ConanFile
-from conan.tools.cmake import cmake_layout
-
-
-class ExampleRecipe(ConanFile):
-    settings = "os", "compiler", "build_type", "arch"
-    generators = "CMakeDeps", "CMakeToolchain"
-
-    def requirements(self):
-        self.requires("proj/8.2.1")
-
-    def layout(self):
-        cmake_layout(self)

Now, you can run this Conan command to locally install (and build if necessary) this recipe and its dependencies (if any):

$ conan install conanfile.txt --build=missing

Useful information to take into account to consume this library:


These are the main declared targets:

  • CMake package name(s): proj
  • CMake target name(s): PROJ::proj
  • projlib => PROJ::proj
    -
  • pkg-config file name(s): proj.pc
  • projlib => proj.pc
    -

A simple use case using the CMake file name and the global target:

# ...
-find_package(proj REQUIRED)
-# ...
-target_link_libraries(YOUR_TARGET PROJ::proj)

These are all the available headers. Some of these ones might be non-public; make sure of it by visiting the proj homepage listed above:

#include "geodesic.h"
-#include "proj.h"
-#include "proj/common.hpp"
-#include "proj/coordinateoperation.hpp"
-#include "proj/coordinatesystem.hpp"
-#include "proj/crs.hpp"
-#include "proj/datum.hpp"
-#include "proj/io.hpp"
-#include "proj/metadata.hpp"
-#include "proj/nn.hpp"
-#include "proj/util.hpp"
-#include "proj_constants.h"
-#include "proj_experimental.h"
-#include "proj_symbol_rename.h"
-


\ No newline at end of file +proj - Conan 2.0: C and C++ Open Source Package Manager

proj/8.2.1

Cartographic Projections and Coordinate Transformations Library.
Recipe info
2024-04-18

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
+proj/8.2.1

Using proj

Loading ...
Loading...

\ No newline at end of file diff --git a/src/utils/PageParsing/testdata/cran.html b/src/utils/PageParsing/testdata/cran.html index 6a93845..95f98e7 100644 --- a/src/utils/PageParsing/testdata/cran.html +++ b/src/utils/PageParsing/testdata/cran.html @@ -1,7 +1,7 @@ -CRAN - Package oysteR +CRAN: Package oysteR @@ -54,6 +54,10 @@

oysteR: Scans R Projects for Vulnerable Third Party Dependencies

2021-01-10 +DOI: +10.32614/CRAN.package.oysteR + + Author: Jeffry Hesse [aut], Brittany Belle [aut], diff --git a/src/utils/PageParsing/testdata/npm-deprecated.html b/src/utils/PageParsing/testdata/npm-deprecated.html index 202dff0..c9387f4 100644 --- a/src/utils/PageParsing/testdata/npm-deprecated.html +++ b/src/utils/PageParsing/testdata/npm-deprecated.html @@ -3,16 +3,16 @@ - + path-is-absolute - npm - + -

This package has been deprecated

Author message:

This package is no longer relevant as Node.js 0.12 is unmaintained.

path-is-absolute
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/path-is-absolute package

2.0.0 • Public • Published

Deprecated

+

This package has been deprecated

Author message:

This package is no longer relevant as Node.js 0.12 is unmaintained.

path-is-absolute
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/path-is-absolute package

2.0.0 • Public • Published

Deprecated

This package is no longer relevant as Node.js 0.12 is unmaintained.


path-is-absolute Build Status

@@ -32,8 +32,8 @@

License

MIT © Sindre Sorhus

-

Package Sidebar

Install

npm i path-is-absolute

Weekly Downloads

44,463,193

Version

2.0.0

License

MIT

Unpacked Size

3.7 kB

Total Files

4

Last publish

Collaborators

  • sindresorhus
- - +

Package Sidebar

Install

npm i path-is-absolute

Weekly Downloads

43,656,229

Version

2.0.0

License

MIT

Unpacked Size

3.7 kB

Total Files

4

Last publish

Collaborators

  • sindresorhus
+ + diff --git a/src/utils/PageParsing/testdata/npm.html b/src/utils/PageParsing/testdata/npm.html index 690d98d..8ac9d95 100644 --- a/src/utils/PageParsing/testdata/npm.html +++ b/src/utils/PageParsing/testdata/npm.html @@ -3,17 +3,17 @@ - + @sonatype/react-shared-components - npm - + -

@sonatype/react-shared-components
TypeScript icon, indicating that this package has built-in type declarations

6.0.1 • Public • Published
This package does not have a README. Add a README to your package so that users know how to get started.

Readme

Keywords

none

Package Sidebar

Install

npm i @sonatype/react-shared-components@6.0.1

Version

6.0.1

License

EPL-2.0

Unpacked Size

1.31 MB

Total Files

705

Last publish

Collaborators

  • sonatype-expedition-team
  • sonatype-admin
  • rpokorny
  • acockrell37
  • ossindex
- - +

@sonatype/react-shared-components
TypeScript icon, indicating that this package has built-in type declarations

6.0.1 • Public • Published
This package does not have a README. Add a README to your package so that users know how to get started.

Readme

Keywords

none

Package Sidebar

Install

npm i @sonatype/react-shared-components@6.0.1

Version

6.0.1

License

EPL-2.0

Unpacked Size

1.31 MB

Total Files

705

Last publish

Collaborators

  • sonatype-expedition-team
  • sonatype-admin
  • rpokorny
  • acockrell37
+ + diff --git a/src/utils/PageParsing/testdata/npm2.html b/src/utils/PageParsing/testdata/npm2.html index c28af9a..64b7153 100644 --- a/src/utils/PageParsing/testdata/npm2.html +++ b/src/utils/PageParsing/testdata/npm2.html @@ -3,7 +3,7 @@ - + @sonatype/policy-demo - npm @@ -12,10 +12,10 @@ -

@sonatype/policy-demo

2.3.0 • Public • Published

NPM Policy Demo

+

@sonatype/policy-demo

2.3.0 • Public • Published

NPM Policy Demo

A simple demo project that Sonatype employees can use to demo policy (and possibly other) features for NPM. It does not do anything of use and should not be used in production by anyone ever.

-

Readme

Keywords

Package Sidebar

Install

npm i @sonatype/policy-demo

Weekly Downloads

36

Version

2.3.0

License

EPL-2.0

Unpacked Size

1.51 kB

Total Files

4

Last publish

Collaborators

  • acockrell37
  • ossindex
  • rpokorny
  • sonatype-admin
  • sonatype-expedition-team
- - +

Readme

Keywords

Package Sidebar

Install

npm i @sonatype/policy-demo

Weekly Downloads

38

Version

2.3.0

License

EPL-2.0

Unpacked Size

1.51 kB

Total Files

4

Last publish

Collaborators

  • sonatype-expedition-team
  • sonatype-admin
  • rpokorny
  • acockrell37
+ + diff --git a/src/utils/PageParsing/testdata/nuget-Newtonsoft.JSON-v13.0.1.html b/src/utils/PageParsing/testdata/nuget-Newtonsoft.JSON-v13.0.1.html index 3684e49..077c383 100644 --- a/src/utils/PageParsing/testdata/nuget-Newtonsoft.JSON-v13.0.1.html +++ b/src/utils/PageParsing/testdata/nuget-Newtonsoft.JSON-v13.0.1.html @@ -31,8 +31,29 @@ - + + + + + @@ -47,7 +68,7 @@ - + @@ -71,11 +92,9 @@ - - + +