@@ -32,52 +32,49 @@ pnpm install @socketregistry/packageurl-js
3232## Usage
3333
3434``` javascript
35- import { PackageURL , PackageURLBuilder } from ' @socketregistry/packageurl-js'
35+ import { PackageURL , PackageURLBuilder , UrlConverter } from ' @socketregistry/packageurl-js'
3636
3737// Parse from string
3838const purl = PackageURL .
fromString (
' pkg:npm/[email protected] ' )
3939console .log (purl .name ) // 'lodash'
4040
4141// Create from components
4242const newPurl = new PackageURL (' npm' , null , ' express' , ' 4.18.2' )
43+ 4344
44- // Builder pattern
45- const builtPurl = PackageURLBuilder
45+ // Builder pattern - ecosystem-specific builders
46+ const npmPurl = PackageURLBuilder
4647 .npm ()
4748 .name (' lodash' )
4849 .version (' 4.17.21' )
4950 .build ()
50- ```
51-
52- ### Builders & URL Conversion
53-
54- ``` javascript
55- // Ecosystem-specific builders
56- PackageURLBuilder .npm () // npm
57- PackageURLBuilder .pypi () // Python
58- PackageURLBuilder .maven () // Java/Maven
59- PackageURLBuilder .cargo () // Rust
60- PackageURLBuilder .gem () // Ruby
51+ 6152
62- // URL conversion
63- import { UrlConverter } from ' @socketregistry/packageurl-js'
64- const repoUrl = UrlConverter .toRepositoryUrl (purl)
65- const downloadUrl = UrlConverter .toDownloadUrl (purl)
66- ```
67-
68- ### Advanced
53+ const pythonPurl = PackageURLBuilder
54+ .pypi ()
55+ .name (' requests' )
56+ .version (' 2.28.1' )
57+ .build ()
58+ // -> 'pkg:pypi/[email protected] '6959
70- ``` javascript
71- // Namespaces and qualifiers
72- const purl = PackageURLBuilder
60+ const javaPurl = PackageURLBuilder
7361 .maven ()
7462 .namespace (' org.springframework' )
7563 .name (' spring-core' )
64+ .version (' 5.3.21' )
7665 .qualifier (' classifier' , ' sources' )
7766 .build ()
67+ // -> 'pkg:maven/org.springframework/[email protected] ?classifier=sources'68+
69+ // Subpaths for packages like npm/@babel/runtime
70+ const subpathPurl = new PackageURL (' npm' , ' @babel' , ' runtime' , ' 7.18.6' , null , ' helpers/typeof.js' )
71+ // -> 'pkg:npm/%40babel/[email protected] #helpers/typeof.js'7872
79- // Subpaths
80- new PackageURL (' npm' , ' @babel' , ' runtime' , ' 7.18.6' , null , ' helpers/typeof.js' )
73+ // URL conversion
74+ const repoUrl = UrlConverter .toRepositoryUrl (purl)
75+ // -> 'https://github.com/lodash/lodash'
76+ const downloadUrl = UrlConverter .toDownloadUrl (purl)
77+ // -> 'https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz'
8178```
8279
8380## Development
0 commit comments