summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/package-json
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/package-json')
-rw-r--r--deps/npm/node_modules/package-json/index.js67
-rw-r--r--deps/npm/node_modules/package-json/license21
-rw-r--r--deps/npm/node_modules/package-json/package.json75
-rw-r--r--deps/npm/node_modules/package-json/readme.md91
4 files changed, 254 insertions, 0 deletions
diff --git a/deps/npm/node_modules/package-json/index.js b/deps/npm/node_modules/package-json/index.js
new file mode 100644
index 0000000000..1e588b27e3
--- /dev/null
+++ b/deps/npm/node_modules/package-json/index.js
@@ -0,0 +1,67 @@
+'use strict';
+const url = require('url');
+const got = require('got');
+const registryUrl = require('registry-url');
+const registryAuthToken = require('registry-auth-token');
+const semver = require('semver');
+
+module.exports = (name, opts) => {
+ const scope = name.split('/')[0];
+ const regUrl = registryUrl(scope);
+ const pkgUrl = url.resolve(regUrl, encodeURIComponent(name).replace(/^%40/, '@'));
+ const authInfo = registryAuthToken(regUrl, {recursive: true});
+
+ opts = Object.assign({
+ version: 'latest'
+ }, opts);
+
+ const headers = {
+ accept: 'application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*'
+ };
+
+ if (opts.fullMetadata) {
+ delete headers.accept;
+ }
+
+ if (authInfo) {
+ headers.authorization = `${authInfo.type} ${authInfo.token}`;
+ }
+
+ return got(pkgUrl, {json: true, headers})
+ .then(res => {
+ let data = res.body;
+ let version = opts.version;
+
+ if (opts.allVersions) {
+ return data;
+ }
+
+ if (data['dist-tags'][version]) {
+ data = data.versions[data['dist-tags'][version]];
+ } else if (version) {
+ if (!data.versions[version]) {
+ const versions = Object.keys(data.versions);
+ version = semver.maxSatisfying(versions, version);
+
+ if (!version) {
+ throw new Error('Version doesn\'t exist');
+ }
+ }
+
+ data = data.versions[version];
+
+ if (!data) {
+ throw new Error('Version doesn\'t exist');
+ }
+ }
+
+ return data;
+ })
+ .catch(err => {
+ if (err.statusCode === 404) {
+ throw new Error(`Package \`${name}\` doesn't exist`);
+ }
+
+ throw err;
+ });
+};
diff --git a/deps/npm/node_modules/package-json/license b/deps/npm/node_modules/package-json/license
new file mode 100644
index 0000000000..654d0bfe94
--- /dev/null
+++ b/deps/npm/node_modules/package-json/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/deps/npm/node_modules/package-json/package.json b/deps/npm/node_modules/package-json/package.json
new file mode 100644
index 0000000000..643260f508
--- /dev/null
+++ b/deps/npm/node_modules/package-json/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "package-json@^4.0.0",
+ "_id": "package-json@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
+ "_location": "/package-json",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "package-json@^4.0.0",
+ "name": "package-json",
+ "escapedName": "package-json",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/latest-version"
+ ],
+ "_resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
+ "_shasum": "8869a0401253661c4c4ca3da6c2121ed555f5eed",
+ "_spec": "package-json@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/latest-version",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/package-json/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "got": "^6.7.1",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
+ },
+ "deprecated": false,
+ "description": "Get metadata of a package from the npm registry",
+ "devDependencies": {
+ "ava": "*",
+ "mock-private-registry": "^1.1.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/package-json#readme",
+ "keywords": [
+ "npm",
+ "registry",
+ "package",
+ "pkg",
+ "package.json",
+ "json",
+ "module",
+ "scope",
+ "scoped"
+ ],
+ "license": "MIT",
+ "name": "package-json",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/package-json.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/package-json/readme.md b/deps/npm/node_modules/package-json/readme.md
new file mode 100644
index 0000000000..477e25c220
--- /dev/null
+++ b/deps/npm/node_modules/package-json/readme.md
@@ -0,0 +1,91 @@
+# package-json [![Build Status](https://travis-ci.org/sindresorhus/package-json.svg?branch=master)](https://travis-ci.org/sindresorhus/package-json)
+
+> Get metadata of a package from the npm registry
+
+
+## Install
+
+```
+$ npm install --save package-json
+```
+
+
+## Usage
+
+```js
+const packageJson = require('package-json');
+
+packageJson('ava').then(json => {
+ console.log(json);
+ //=> {name: 'ava', ...}
+});
+
+// Also works with scoped packages
+packageJson('@sindresorhus/df').then(json => {
+ console.log(json);
+ //=> {name: '@sindresorhus/df', ...}
+});
+```
+
+
+## API
+
+### packageJson(name, [options])
+
+#### name
+
+Type: `string`
+
+Name of the package.
+
+#### options
+
+Type: `Object`
+
+##### version
+
+Type: `string`<br>
+Default: `latest`
+
+Package version such as `1.0.0` or a [dist tag](https://docs.npmjs.com/cli/dist-tag) such as `latest`.
+
+The version can also be in any format supported by the [semver](https://github.com/npm/node-semver) module. For example:
+
+- `1` - get the latest `1.x.x`
+- `1.2` - get the latest `1.2.x`
+- `^1.2.3` - get the latest `1.x.x` but at least `1.2.3`
+- `~1.2.3` - get the latest `1.2.x` but at least `1.2.3`
+
+##### fullMetadata
+
+Type: `boolean`<br>
+Default: `false`
+
+By default, only an abbreviated metadata object is returned for performance reasons. [Read more.](https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md)
+
+##### allVersions
+
+Type: `boolean`<br>
+Default: `false`
+
+Return the [main entry](https://registry.npmjs.org/ava) containing all versions.
+
+
+## Authentication
+
+Both public and private registries are supported, for both scoped and unscoped packages, as long as the registry uses either bearer tokens or basic authentication.
+
+
+## Related
+
+- [package-json-cli](https://github.com/sindresorhus/package-json-cli) - CLI for this module
+- [latest-version](https://github.com/sindresorhus/latest-version) - Get the latest version of an npm package
+- [pkg-versions](https://github.com/sindresorhus/pkg-versions) - Get the version numbers of a package from the npm registry
+- [npm-keyword](https://github.com/sindresorhus/npm-keyword) - Get a list of npm packages with a certain keyword
+- [npm-user](https://github.com/sindresorhus/npm-user) - Get user info of an npm user
+- [npm-email](https://github.com/sindresorhus/npm-email) - Get the email of an npm user
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)