| { |
| "_from": "npm-package-arg@>=4.1.0 <4.2.0", |
| "_id": "npm-package-arg@4.1.0", |
| "_location": "/npm/npm-package-arg", |
| "_nodeVersion": "4.2.1", |
| "_npmUser": { |
| "email": "me@re-becca.org", |
| "name": "iarna" |
| }, |
| "_npmVersion": "3.4.0", |
| "_phantomChildren": {}, |
| "_requiredBy": [ |
| "/npm", |
| "/npm/init-package-json", |
| "/npm/npm-registry-client", |
| "/npm/realize-package-specifier" |
| ], |
| "_resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.1.0.tgz", |
| "_shasum": "2e015f8ac00737cb97f997c9cbf059f42a74527d", |
| "_shrinkwrap": null, |
| "author": { |
| "email": "i@izs.me", |
| "name": "Isaac Z. Schlueter", |
| "url": "http://blog.izs.me/" |
| }, |
| "bugs": { |
| "url": "https://github.com/npm/npm-package-arg/issues" |
| }, |
| "dependencies": { |
| "hosted-git-info": "^2.1.4", |
| "semver": "4 || 5" |
| }, |
| "description": "Parse the things that can be arguments to `npm install`", |
| "devDependencies": { |
| "tap": "^1.2.0" |
| }, |
| "directories": { |
| "test": "test" |
| }, |
| "dist": { |
| "shasum": "2e015f8ac00737cb97f997c9cbf059f42a74527d", |
| "tarball": "http://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.1.0.tgz" |
| }, |
| "gitHead": "383b4783a076b825815be51eb1ab2e4bb8a1e1fc", |
| "homepage": "https://github.com/npm/npm-package-arg", |
| "license": "ISC", |
| "main": "npa.js", |
| "maintainers": [ |
| { |
| "email": "i@izs.me", |
| "name": "isaacs" |
| }, |
| { |
| "email": "ogd@aoaioxxysz.net", |
| "name": "othiym23" |
| }, |
| { |
| "email": "me@re-becca.org", |
| "name": "iarna" |
| } |
| ], |
| "name": "npm-package-arg", |
| "optionalDependencies": {}, |
| "readme": "# npm-package-arg\n\nParse package name and specifier passed to commands like `npm install` or\n`npm cache add`. This just parses the text given-- it's worth noting that\n`npm` has further logic it applies by looking at your disk to figure out\nwhat ambiguous specifiers are. If you want that logic, please see\n[realize-package-specifier].\n\n[realize-package-specifier]: https://www.npmjs.org/package/realize-package-specifier\n\nArguments look like: `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` or `bar`\n\n## EXAMPLES\n\n```javascript\nvar assert = require(\"assert\")\nvar npa = require(\"npm-package-arg\")\n\n// Pass in the descriptor, and it'll return an object\nvar parsed = npa(\"@bar/foo@1.2\")\n\n// Returns an object like:\n{\n raw: '@bar/foo@1.2', // what was passed in\n name: \"@bar/foo\", // the name of the package\n scope: \"@bar\", // the private scope of the package, or null\n type: \"range\", // the type of specifier this is\n spec: \">=1.2.0 <1.3.0\" // the expanded specifier\n rawSpec: \"1.2\" // the specifier as passed in\n }\n\n// Parsing urls pointing at hosted git services produces a variation:\nvar parsed = npa(\"git+https://github.com/user/foo\")\n\n// Returns an object like:\n{\n raw: 'git+https://github.com/user/foo',\n scope: null,\n name: null,\n rawSpec: 'git+https://github.com/user/foo',\n spec: 'user/foo',\n type: 'hosted',\n hosted: {\n type: 'github',\n ssh: 'git@github.com:user/foo.git',\n sshurl: 'git+ssh://git@github.com/user/foo.git',\n https: 'https://github.com/user/foo.git',\n directUrl: 'https://raw.githubusercontent.com/user/foo/master/package.json'\n }\n}\n\n// Completely unreasonable invalid garbage throws an error\n// Make sure you wrap this in a try/catch if you have not\n// already sanitized the inputs!\nassert.throws(function() {\n npa(\"this is not \\0 a valid package name or url\")\n})\n```\n\n## USING\n\n`var npa = require('npm-package-arg')`\n\n* var result = npa(*arg*)\n\nParses *arg* and returns a result object detailing what *arg* is.\n\n*arg* -- a package descriptor, like: `foo@1.2`, or `foo@user/foo`, or\n`http://x.com/foo.tgz`, or `git+https://github.com/user/foo`\n\n## RESULT OBJECT\n\nThe objects that are returned by npm-package-arg contain the following\nkeys:\n\n* `name` - If known, the `name` field expected in the resulting pkg.\n* `type` - One of the following strings:\n * `git` - A git repo\n * `hosted` - A hosted project, from github, bitbucket or gitlab. Originally\n either a full url pointing at one of these services or a shorthand like\n `user/project` or `github:user/project` for github or `bitbucket:user/project`\n for bitbucket.\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 * `local` - A local file or folder path\n * `remote` - An http url (presumably to a tgz)\n* `spec` - The \"thing\". URL, the range, git repo, etc.\n* `hosted` - If type=hosted this will be an object with the following keys:\n * `type` - github, bitbucket or gitlab\n * `ssh` - The ssh path for this git repo\n * `sshUrl` - The ssh URL for this git repo\n * `httpsUrl` - The HTTPS URL for this git repo\n * `directUrl` - The URL for the package.json in this git repo\n* `raw` - The original un-modified string that was provided.\n* `rawSpec` - The part after the `name@...`, as it was originally\n provided.\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\nIf you only include a name and no specifier part, eg, `foo` or `foo@` then\na default of `latest` will be used (as of 4.1.0). This is contrast with\nprevious behavior where `*` was used.\n", |
| "readmeFilename": "README.md", |
| "repository": { |
| "type": "git", |
| "url": "git+https://github.com/npm/npm-package-arg.git" |
| }, |
| "scripts": { |
| "test": "tap test/*.js" |
| }, |
| "version": "4.1.0" |
| } |