{"_id":"@pnpm/npm-package-arg","_rev":"4055462","name":"@pnpm/npm-package-arg","description":"Parse the things that can be arguments to `npm install`","dist-tags":{"latest":"2.0.0"},"maintainers":[{"name":"pnpmuser","email":"zoltan.kochan@gmail.com"},{"name":"zkochan","email":"zoltan.kochan+github@gmail.com"}],"time":{"modified":"2025-09-01T06:45:25.000Z","created":"2022-06-28T12:48:31.287Z","2.0.0":"2025-07-23T22:45:45.517Z","1.0.0":"2022-06-28T12:48:31.287Z"},"users":{},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"repository":{"type":"git","url":"git+https://github.com/zkochan/npm-package-arg.git"},"versions":{"2.0.0":{"name":"@pnpm/npm-package-arg","version":"2.0.0","description":"Parse the things that can be arguments to `npm install`","main":"npa.js","engines":{"node":">=18.12"},"directories":{"test":"test"},"dependencies":{"hosted-git-info":"^4.0.1","semver":"^7.3.5","validate-npm-package-name":"^4.0.0"},"devDependencies":{"standard":"14.3.3","tap":"^16.3.0"},"scripts":{"test":"standard && tap -J --no-check-coverage test/*.js"},"repository":{"type":"git","url":"git+https://github.com/zkochan/npm-package-arg.git"},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","bugs":{"url":"https://github.com/zkochan/npm-package-arg/issues"},"homepage":"https://github.com/zkochan/npm-package-arg","_id":"@pnpm/npm-package-arg@2.0.0","gitHead":"c8d9ad1f161eb4902b52e6cae1b7b5e8451be014","_nodeVersion":"20.19.3","_npmVersion":"11.4.2","dist":{"shasum":"b62a23b6e74fd6d1168a9e3c9add2d998126874d","size":5598,"noattachment":false,"key":"/@pnpm/npm-package-arg/-/@pnpm/npm-package-arg-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@pnpm/npm-package-arg/download/@pnpm/npm-package-arg-2.0.0.tgz"},"_npmUser":{"name":"zkochan","email":"z@kochan.io"},"maintainers":[{"name":"pnpmuser","email":"zoltan.kochan@gmail.com"},{"name":"zkochan","email":"zoltan.kochan+github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/npm-package-arg_2.0.0_1753310745327_0.39926289838323026"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-23T22:45:45.517Z","publish_time":1753310745517,"_source_registry_name":"default","_cnpm_publish_time":1753310745517},"1.0.0":{"name":"@pnpm/npm-package-arg","version":"1.0.0","description":"Parse the things that can be arguments to `npm install`","main":"npa.js","engines":{"node":">=14.6"},"directories":{"test":"test"},"dependencies":{"hosted-git-info":"^4.0.1","semver":"^7.3.5","validate-npm-package-name":"^4.0.0"},"devDependencies":{"standard":"14.3.3","tap":"^16.3.0"},"repository":{"type":"git","url":"git+https://github.com/zkochan/npm-package-arg.git"},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","bugs":{"url":"https://github.com/zkochan/npm-package-arg/issues"},"homepage":"https://github.com/zkochan/npm-package-arg","scripts":{"test":"standard && tap -J --coverage test/*.js"},"_id":"@pnpm/npm-package-arg@1.0.0","_integrity":"sha512-oQYP08exi6mOPdAZZWcNIGS+KKPsnNwUBzSuAEGWuCcqwMAt3k/WVCqVIXzBxhO5sP2b43og69VHmPj6IroKqw==","_resolved":"/tmp/5b24ac8b51fea780911905df5da9daab/pnpm-npm-package-arg-1.0.0.tgz","_from":"file:pnpm-npm-package-arg-1.0.0.tgz","_nodeVersion":"14.19.3","_npmVersion":"8.12.1","dist":{"shasum":"2a27938f4d38c6cce5f3695fd1e7d5ed8929645e","size":5243,"noattachment":false,"key":"/@pnpm/npm-package-arg/-/@pnpm/npm-package-arg-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@pnpm/npm-package-arg/download/@pnpm/npm-package-arg-1.0.0.tgz"},"_npmUser":{"name":"zkochan","email":"z@kochan.io"},"maintainers":[{"name":"pnpmuser","email":"zoltan.kochan@gmail.com"},{"name":"zkochan","email":"zoltan.kochan+github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/npm-package-arg_1.0.0_1656420511119_0.8521498764223687"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-06-28T13:13:21.581Z","publish_time":1656420511287,"_cnpm_publish_time":1656420511287}},"readme":"# @pnpm/npm-package-arg\n\nParses package name and specifier passed to commands like `npm install` or\n`npm cache add`, or as found in `package.json` dependency sections.\n\n## EXAMPLES\n\n```javascript\nvar assert = require(\"assert\")\nvar npa = require(\"@pnpm/npm-package-arg\")\n\n// Pass in the descriptor, and it'll return an object\ntry {\n  var parsed = npa(\"@bar/foo@1.2\")\n} catch (ex) {\n  …\n}\n```\n\n## USING\n\n`var npa = require('@pnpm/npm-package-arg')`\n\n### var result = npa(*arg*[, *where*])\n\n* *arg* - a string that you might pass to `npm install`, like:\n`foo@1.2`, `@bar/foo@1.2`, `foo@user/foo`, `http://x.com/foo.tgz`,\n`git+https://github.com/user/foo`, `bitbucket:user/foo`, `foo.tar.gz`,\n`../foo/bar/` or `bar`.  If the *arg* you provide doesn't have a specifier\npart, eg `foo` then the specifier will default to `latest`.\n* *where* - Optionally the path to resolve file paths relative to. Defaults to `process.cwd()`\n\n**Throws** if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.\n\n### var result = npa.resolve(*name*, *spec*[, *where*])\n\n* *name* - The name of the module you want to install. For example: `foo` or `@bar/foo`.\n* *spec* - The specifier indicating where and how you can get this module. Something like:\n`1.2`, `^1.7.17`, `http://x.com/foo.tgz`, `git+https://github.com/user/foo`,\n`bitbucket:user/foo`, `file:foo.tar.gz` or `file:../foo/bar/`.  If not\nincluded then the default is `latest`.\n* *where* - Optionally the path to resolve file paths relative to. Defaults to `process.cwd()`\n\n**Throws** if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.\n\n## RESULT OBJECT\n\nThe objects that are returned by @pnpm/npm-package-arg contain the following\nkeys:\n\n* `type` - One of the following strings:\n  * `git` - A git repo\n  * `tag` - A tagged version, like `\"foo@latest\"`\n  * `version` - A specific version number, like `\"foo@1.2.3\"`\n  * `range` - A version range, like `\"foo@2.x\"`\n  * `file` - A local `.tar.gz`, `.tar` or `.tgz` file.\n  * `directory` - A local directory.\n  * `remote` - An http url (presumably to a tgz)\n* `registry` - If true this specifier refers to a resource hosted on a\n  registry.  This is true for `tag`, `version` and `range` types.\n* `name` - If known, the `name` field expected in the resulting pkg.\n* `scope` - If a name is something like `@org/module` then the `scope`\n  field will be set to `@org`.  If it doesn't have a scoped name, then\n  scope is `null`.\n* `escapedName` - A version of `name` escaped to match the npm scoped packages\n  specification. Mostly used when making requests against a registry. When\n  `name` is `null`, `escapedName` will also be `null`.\n* `rawSpec` - The specifier part that was parsed out in calls to `npa(arg)`,\n  or the value of `spec` in calls to `npa.resolve(name, spec).\n* `saveSpec` - The normalized specifier, for saving to package.json files.\n  `null` for registry dependencies.\n* `fetchSpec` - The version of the specifier to be used to fetch this\n  resource.  `null` for shortcuts to hosted git dependencies as there isn't\n  just one URL to try with them.\n* `gitRange` - If set, this is a semver specifier to match against git tags with\n* `gitCommittish` - If set, this is the specific committish to use with a git dependency.\n* `hosted` - If `from === 'hosted'` then this will be a `hosted-git-info`\n  object. This property is not included when serializing the object as\n  JSON.\n* `raw` - The original un-modified string that was provided.  If called as\n  `npa.resolve(name, spec)` then this will be `name + '@' + spec`.\n","_attachments":{},"homepage":"https://github.com/zkochan/npm-package-arg","bugs":{"url":"https://github.com/zkochan/npm-package-arg/issues"},"license":"ISC"}