{"id":14155545,"url":"https://github.com/package-url/packageurl-js","last_synced_at":"2025-05-16T10:08:29.751Z","repository":{"id":29409676,"uuid":"121604592","full_name":"package-url/packageurl-js","owner":"package-url","description":"JavaScript implementation of the package url spec ","archived":false,"fork":false,"pushed_at":"2025-03-11T15:41:06.000Z","size":228,"stargazers_count":28,"open_issues_count":3,"forks_count":24,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-11T17:48:31.254Z","etag":null,"topics":["javascript","library","package-url","purl"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/packageurl-js","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/package-url.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-15T08:06:50.000Z","updated_at":"2025-04-09T10:23:40.000Z","dependencies_parsed_at":"2023-01-14T14:52:01.598Z","dependency_job_id":"adebfa8f-8ac5-490d-81d8-e454e4de14c6","html_url":"https://github.com/package-url/packageurl-js","commit_stats":{"total_commits":32,"total_committers":10,"mean_commits":3.2,"dds":0.75,"last_synced_commit":"5c60bfda7acd95ab200decc9124c54b4630ebe38"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/package-url%2Fpackageurl-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/package-url%2Fpackageurl-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/package-url%2Fpackageurl-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/package-url%2Fpackageurl-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/package-url","download_url":"https://codeload.github.com/package-url/packageurl-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254509477,"owners_count":22082892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","library","package-url","purl"],"created_at":"2024-08-17T08:03:50.069Z","updated_at":"2025-05-16T10:08:24.741Z","avatar_url":"https://github.com/package-url.png","language":"JavaScript","funding_links":[],"categories":["library"],"sub_categories":[],"readme":"# packageurl-js\n\n### Installing\n\nTo install `packageurl-js` in your project, simply run:\n```bash\nnpm install packageurl-js\n```\n\nThis command will download the `packageurl-js` npm package for use in your application.\n\n### Local Development\n\nClone the `packageurl-js` repo and `cd` into the directory.\n\nThen run:\n```bash\nnpm install\n```\n\n### Testing\n\nTo run the test suite:\n```bash\nnpm test\n```\n\n### Usage Examples\n\n#### Importing\n\nAs an ES6 module\n```js\nimport { PackageURL } from 'packageurl-js'\n```\n\nAs a CommonJS module\n```js\nconst { PackageURL } = require('packageurl-js')\n```\n\n#### Parsing\n\n```js\nconst purlStr = 'pkg:maven/org.springframework.integration/spring-integration-jms@5.5.5'\nconsole.log(PackageURL.fromString(purlStr))\nconsole.log(new PackageURL(...PackageURL.parseString(purlStr)))\n```\n\nwill both log\n\n```\nPackageURL {\n    type: 'maven',\n    name: 'spring-integration-jms',\n    namespace: 'org.springframework.integration',\n    version: '5.5.5',\n    qualifiers: undefined,\n    subpath: undefined\n}\n```\n\n#### Constructing\n\n```js\nconst pkg = new PackageURL(\n    'maven',\n    'org.springframework.integration',\n    'spring-integration-jms',\n    '5.5.5'\n)\nconsole.log(pkg.toString())\n```\n\n=\u003e\n\n```\npkg:maven/org.springframework.integration/spring-integration-jms@5.5.5\n```\n\n#### Error Handling\n\n```js\ntry {\n    PackageURL.fromString('not-a-purl')\n} catch (e) {\n    console.error(e.message)\n}\n```\n\n=\u003e\n\n```\nInvalid purl: missing required \"pkg\" scheme component\n```\n\n#### Helper Objects\n\nHelpers for encoding, normalizing, and validating purl components and types can\nbe imported directly from the module or found on the PackageURL class as static\nproperties.\n```js\nimport {\n    PackageURL,\n    PurlComponent,\n    PurlType\n} from 'packageurl-js'\n\nPurlComponent === PackageURL.Component // =\u003e true\nPurlType === PackageURL.Type // =\u003e true\n```\n\n#### PurlComponent\n\nContains the following properties each with their own `encode`, `normalize`,\nand `validate` methods, e.g. `PurlComponent.name.validate(nameStr)`:\n  - type\n  - namespace\n  - name\n  - version\n  - qualifiers\n  - qualifierKey\n  - qualifierValue\n  - subpath\n\n#### PurlType\n\nContains the following properties each with their own `normalize`, and `validate`\nmethods, e.g. `PurlType.npm.validate(purlObj)`:\n  - alpm\n  - apk\n  - bitbucket\n  - bitnami\n  - composer\n  - conan\n  - cran\n  - deb\n  - github\n  - gitlab\n  - golang\n  - hex\n  - huggingface\n  - luarocks\n  - maven\n  - mlflow\n  - npm\n  - oci\n  - pub\n  - pypi\n  - qpkg\n  - rpm\n  - swift\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpackage-url%2Fpackageurl-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpackage-url%2Fpackageurl-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpackage-url%2Fpackageurl-js/lists"}