summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/bin-links
diff options
context:
space:
mode:
authorKat Marchán <kzm@sykosomatic.org>2017-12-07 14:05:23 -0800
committerMyles Borins <mylesborins@google.com>2018-01-19 11:32:08 -0500
commitd3b1c971bcf0177b17c649c3aeca1a94cbc3fff5 (patch)
tree321928c015be00cdbe11715297d2d2fc45802263 /deps/npm/node_modules/bin-links
parentbfe41fe88e7421f441067a79fb7512cf5935a2bb (diff)
downloadnode-new-d3b1c971bcf0177b17c649c3aeca1a94cbc3fff5.tar.gz
deps: upgrade npm to 5.6.0
PR-URL: https://github.com/nodejs/node/pull/17777 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'deps/npm/node_modules/bin-links')
-rw-r--r--deps/npm/node_modules/bin-links/CHANGELOG.md22
-rw-r--r--deps/npm/node_modules/bin-links/LICENSE235
-rw-r--r--deps/npm/node_modules/bin-links/README.md47
-rw-r--r--deps/npm/node_modules/bin-links/index.js187
-rw-r--r--deps/npm/node_modules/bin-links/package.json77
5 files changed, 568 insertions, 0 deletions
diff --git a/deps/npm/node_modules/bin-links/CHANGELOG.md b/deps/npm/node_modules/bin-links/CHANGELOG.md
new file mode 100644
index 0000000000..c21734b67d
--- /dev/null
+++ b/deps/npm/node_modules/bin-links/CHANGELOG.md
@@ -0,0 +1,22 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="1.1.0"></a>
+# [1.1.0](https://github.com/npm/bin-links/compare/v1.0.0...v1.1.0) (2017-11-20)
+
+
+### Features
+
+* **dos2unix:** Log the fact line endings are being changed upon install. ([e9f8a6f](https://github.com/npm/bin-links/commit/e9f8a6f))
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2017-10-07)
+
+
+### Features
+
+* **import:** initial extraction from npm ([6ed0bfb](https://github.com/npm/bin-links/commit/6ed0bfb))
+* **initial commit:** README ([3fc9cf0](https://github.com/npm/bin-links/commit/3fc9cf0))
diff --git a/deps/npm/node_modules/bin-links/LICENSE b/deps/npm/node_modules/bin-links/LICENSE
new file mode 100644
index 0000000000..0b6c228745
--- /dev/null
+++ b/deps/npm/node_modules/bin-links/LICENSE
@@ -0,0 +1,235 @@
+The npm application
+Copyright (c) npm, Inc. and Contributors
+Licensed on the terms of The Artistic License 2.0
+
+Node package dependencies of the npm application
+Copyright (c) their respective copyright owners
+Licensed on their respective license terms
+
+The npm public registry at https://registry.npmjs.org
+and the npm website at https://www.npmjs.com
+Operated by npm, Inc.
+Use governed by terms published on https://www.npmjs.com
+
+"Node.js"
+Trademark Joyent, Inc., https://joyent.com
+Neither npm nor npm, Inc. are affiliated with Joyent, Inc.
+
+The Node.js application
+Project of Node Foundation, https://nodejs.org
+
+The npm Logo
+Copyright (c) Mathias Pettersson and Brian Hammond
+
+"Gubblebum Blocky" typeface
+Copyright (c) Tjarda Koster, https://jelloween.deviantart.com
+Used with permission
+
+
+--------
+
+
+The Artistic License 2.0
+
+Copyright (c) 2000-2006, The Perl Foundation.
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+Preamble
+
+This license establishes the terms under which a given free software
+Package may be copied, modified, distributed, and/or redistributed.
+The intent is that the Copyright Holder maintains some artistic
+control over the development of that Package while still keeping the
+Package available as open source and free software.
+
+You are always permitted to make arrangements wholly outside of this
+license directly with the Copyright Holder of a given Package. If the
+terms of this license do not permit the full use that you propose to
+make of the Package, you should contact the Copyright Holder and seek
+a different licensing arrangement.
+
+Definitions
+
+ "Copyright Holder" means the individual(s) or organization(s)
+ named in the copyright notice for the entire Package.
+
+ "Contributor" means any party that has contributed code or other
+ material to the Package, in accordance with the Copyright Holder's
+ procedures.
+
+ "You" and "your" means any person who would like to copy,
+ distribute, or modify the Package.
+
+ "Package" means the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection and/or of
+ those files. A given Package may consist of either the Standard
+ Version, or a Modified Version.
+
+ "Distribute" means providing a copy of the Package or making it
+ accessible to anyone else, or in the case of a company or
+ organization, to others outside of your company or organization.
+
+ "Distributor Fee" means any fee that you charge for Distributing
+ this Package or providing support for this Package to another
+ party. It does not mean licensing fees.
+
+ "Standard Version" refers to the Package if it has not been
+ modified, or has been modified only in ways explicitly requested
+ by the Copyright Holder.
+
+ "Modified Version" means the Package, if it has been changed, and
+ such changes were not explicitly requested by the Copyright
+ Holder.
+
+ "Original License" means this Artistic License as Distributed with
+ the Standard Version of the Package, in its current version or as
+ it may be modified by The Perl Foundation in the future.
+
+ "Source" form means the source code, documentation source, and
+ configuration files for the Package.
+
+ "Compiled" form means the compiled bytecode, object code, binary,
+ or any other form resulting from mechanical transformation or
+ translation of the Source form.
+
+
+Permission for Use and Modification Without Distribution
+
+(1) You are permitted to use the Standard Version and create and use
+Modified Versions for any purpose without restriction, provided that
+you do not Distribute the Modified Version.
+
+
+Permissions for Redistribution of the Standard Version
+
+(2) You may Distribute verbatim copies of the Source form of the
+Standard Version of this Package in any medium without restriction,
+either gratis or for a Distributor Fee, provided that you duplicate
+all of the original copyright notices and associated disclaimers. At
+your discretion, such verbatim copies may or may not include a
+Compiled form of the Package.
+
+(3) You may apply any bug fixes, portability changes, and other
+modifications made available from the Copyright Holder. The resulting
+Package will still be considered the Standard Version, and as such
+will be subject to the Original License.
+
+
+Distribution of Modified Versions of the Package as Source
+
+(4) You may Distribute your Modified Version as Source (either gratis
+or for a Distributor Fee, and with or without a Compiled form of the
+Modified Version) provided that you clearly document how it differs
+from the Standard Version, including, but not limited to, documenting
+any non-standard features, executables, or modules, and provided that
+you do at least ONE of the following:
+
+ (a) make the Modified Version available to the Copyright Holder
+ of the Standard Version, under the Original License, so that the
+ Copyright Holder may include your modifications in the Standard
+ Version.
+
+ (b) ensure that installation of your Modified Version does not
+ prevent the user installing or running the Standard Version. In
+ addition, the Modified Version must bear a name that is different
+ from the name of the Standard Version.
+
+ (c) allow anyone who receives a copy of the Modified Version to
+ make the Source form of the Modified Version available to others
+ under
+
+ (i) the Original License or
+
+ (ii) a license that permits the licensee to freely copy,
+ modify and redistribute the Modified Version using the same
+ licensing terms that apply to the copy that the licensee
+ received, and requires that the Source form of the Modified
+ Version, and of any works derived from it, be made freely
+ available in that license fees are prohibited but Distributor
+ Fees are allowed.
+
+
+Distribution of Compiled Forms of the Standard Version
+or Modified Versions without the Source
+
+(5) You may Distribute Compiled forms of the Standard Version without
+the Source, provided that you include complete instructions on how to
+get the Source of the Standard Version. Such instructions must be
+valid at the time of your distribution. If these instructions, at any
+time while you are carrying out such distribution, become invalid, you
+must provide new instructions on demand or cease further distribution.
+If you provide valid instructions or cease distribution within thirty
+days after you become aware that the instructions are invalid, then
+you do not forfeit any of your rights under this license.
+
+(6) You may Distribute a Modified Version in Compiled form without
+the Source, provided that you comply with Section 4 with respect to
+the Source of the Modified Version.
+
+
+Aggregating or Linking the Package
+
+(7) You may aggregate the Package (either the Standard Version or
+Modified Version) with other packages and Distribute the resulting
+aggregation provided that you do not charge a licensing fee for the
+Package. Distributor Fees are permitted, and licensing fees for other
+components in the aggregation are permitted. The terms of this license
+apply to the use and Distribution of the Standard or Modified Versions
+as included in the aggregation.
+
+(8) You are permitted to link Modified and Standard Versions with
+other works, to embed the Package in a larger work of your own, or to
+build stand-alone binary or bytecode versions of applications that
+include the Package, and Distribute the result without restriction,
+provided the result does not expose a direct interface to the Package.
+
+
+Items That are Not Considered Part of a Modified Version
+
+(9) Works (including, but not limited to, modules and scripts) that
+merely extend or make use of the Package, do not, by themselves, cause
+the Package to be a Modified Version. In addition, such works are not
+considered parts of the Package itself, and are not subject to the
+terms of this license.
+
+
+General Provisions
+
+(10) Any use, modification, and distribution of the Standard or
+Modified Versions is governed by this Artistic License. By using,
+modifying or distributing the Package, you accept this license. Do not
+use, modify, or distribute the Package, if you do not accept this
+license.
+
+(11) If your Modified Version has been derived from a Modified
+Version made by someone other than you, you are nevertheless required
+to ensure that your Modified Version complies with the requirements of
+this license.
+
+(12) This license does not grant you the right to use any trademark,
+service mark, tradename, or logo of the Copyright Holder.
+
+(13) This license includes the non-exclusive, worldwide,
+free-of-charge patent license to make, have made, use, offer to sell,
+sell, import and otherwise transfer the Package with respect to any
+patent claims licensable by the Copyright Holder that are necessarily
+infringed by the Package. If you institute patent litigation
+(including a cross-claim or counterclaim) against any party alleging
+that the Package constitutes direct or contributory patent
+infringement, then this Artistic License to you shall terminate on the
+date that such litigation is filed.
+
+(14) Disclaimer of Warranty:
+THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
+IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
+LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+--------
diff --git a/deps/npm/node_modules/bin-links/README.md b/deps/npm/node_modules/bin-links/README.md
new file mode 100644
index 0000000000..558d5c74b2
--- /dev/null
+++ b/deps/npm/node_modules/bin-links/README.md
@@ -0,0 +1,47 @@
+# bin-links [![npm version](https://img.shields.io/npm/v/bin-links.svg)](https://npm.im/bin-links) [![license](https://img.shields.io/npm/l/bin-links.svg)](https://npm.im/bin-links) [![Travis](https://img.shields.io/travis/npm/bin-links.svg)](https://travis-ci.org/npm/bin-links) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/bin-links?svg=true)](https://ci.appveyor.com/project/npm/bin-links) [![Coverage Status](https://coveralls.io/repos/github/npm/bin-links/badge.svg?branch=latest)](https://coveralls.io/github/npm/bin-links?branch=latest)
+
+[`bin-links`](https://github.com/npm/bin-links) is a standalone library that links
+binaries and man pages for Javascript packages
+
+## Install
+
+`$ npm install bin-links`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [Contributing](#contributing)
+* [API](#api)
+ * [`binLinks`](#binLinks)
+
+### Example
+
+```javascript
+// todo
+```
+
+### Features
+
+* Links bin files listed under the `bin` property of pkg to the node_modules/.bin
+directory of the installing environment.
+* Links man files listed under the `man` property of pkg to the share/man directory
+of the provided optional directory prefix.
+
+### Contributing
+
+The npm team enthusiastically welcomes contributions and project participation!
+There's a bunch of things you can do if you want to contribute! The [Contributor
+Guide](CONTRIBUTING.md) has all the information you need for everything from
+reporting bugs to contributing entire new features. Please don't hesitate to
+jump in if you'd like to, or even ask us questions if something isn't clear.
+
+### API
+
+#### <a name="binLinks"></a> `> binLinks(pkg, folder, global, opts, cb)`
+
+##### Example
+
+```javascript
+binLinks(pkg, folder, global, opts, cb)
+``` \ No newline at end of file
diff --git a/deps/npm/node_modules/bin-links/index.js b/deps/npm/node_modules/bin-links/index.js
new file mode 100644
index 0000000000..e6370acad5
--- /dev/null
+++ b/deps/npm/node_modules/bin-links/index.js
@@ -0,0 +1,187 @@
+'use strict'
+
+const path = require('path')
+const fs = require('graceful-fs')
+const linkIfExists = require('gentle-fs').linkIfExists
+const cmdShimIfExists = require('cmd-shim').ifExists
+const asyncMap = require('slide').asyncMap
+const BB = require('bluebird')
+const open = BB.promisify(fs.open)
+const close = BB.promisify(fs.close)
+const stat = BB.promisify(fs.stat)
+const chmod = BB.promisify(fs.chmod)
+const Transform = require('stream').Transform
+const fsWriteStreamAtomic = require('fs-write-stream-atomic')
+
+module.exports = BB.promisify(binLinks)
+
+function binLinks (pkg, folder, global, opts, cb) {
+ // if it's global, and folder is in {prefix}/node_modules,
+ // then bins are in {prefix}/bin
+ // otherwise, then bins are in folder/../.bin
+ var parent = pkg.name && pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder)
+ var gnm = global && opts.globalDir
+ var gtop = parent === gnm
+
+ opts.log.info('linkStuff', opts.pkgId)
+ opts.log.silly('linkStuff', opts.pkgId, 'has', parent, 'as its parent node_modules')
+ if (global) opts.log.silly('linkStuff', opts.pkgId, 'is part of a global install')
+ if (gnm) opts.log.silly('linkStuff', opts.pkgId, 'is installed into a global node_modules')
+ if (gtop) opts.log.silly('linkStuff', opts.pkgId, 'is installed into the top-level global node_modules')
+
+ asyncMap(
+ [linkBins, linkMans],
+ function (fn, cb) {
+ if (!fn) return cb()
+ opts.log.verbose(fn.name, opts.pkgId)
+ fn(pkg, folder, parent, gtop, opts, cb)
+ },
+ cb
+ )
+}
+
+function isHashbangFile (file) {
+ return open(file, 'r').then((fileHandle) => {
+ return new BB((resolve, reject) => {
+ fs.read(fileHandle, Buffer.from(new Array(2)), 0, 2, 0, function (err, bytesRead, buffer) {
+ close(fileHandle).then(() => {
+ resolve(!err && buffer.toString() === '#!')
+ }).catch(reject)
+ })
+ })
+ })
+}
+
+function dos2Unix (file) {
+ return stat(file).then((stats) => {
+ let previousChunkEndedInCR = false
+ return new BB((resolve, reject) => {
+ fs.createReadStream(file)
+ .on('error', reject)
+ .pipe(new Transform({
+ transform: function (chunk, encoding, done) {
+ let data = chunk.toString()
+ if (previousChunkEndedInCR) {
+ data = '\r' + data
+ }
+ if (data[data.length - 1] === '\r') {
+ data = data.slice(0, -1)
+ previousChunkEndedInCR = true
+ } else {
+ previousChunkEndedInCR = false
+ }
+ done(null, data.replace(/\r\n/g, '\n'))
+ },
+ flush: function (done) {
+ if (previousChunkEndedInCR) {
+ this.push('\r')
+ }
+ done()
+ }
+ }))
+ .on('error', reject)
+ .pipe(fsWriteStreamAtomic(file))
+ .on('error', reject)
+ .on('finish', function () {
+ resolve(chmod(file, stats.mode))
+ })
+ })
+ })
+}
+
+function getLinkOpts (opts, gently) {
+ return Object.assign({}, opts, { gently: gently })
+}
+
+function linkBins (pkg, folder, parent, gtop, opts, cb) {
+ if (!pkg.bin || (!gtop && path.basename(parent) !== 'node_modules')) {
+ return cb()
+ }
+ var linkOpts = getLinkOpts(opts, gtop && folder)
+ var execMode = parseInt('0777', 8) & (~opts.umask)
+ var binRoot = gtop ? opts.globalBin
+ : path.resolve(parent, '.bin')
+ opts.log.verbose('linkBins', [pkg.bin, binRoot, gtop])
+
+ asyncMap(Object.keys(pkg.bin), function (bin, cb) {
+ var dest = path.resolve(binRoot, bin)
+ var src = path.resolve(folder, pkg.bin[bin])
+
+ linkBin(src, dest, linkOpts, function (er) {
+ if (er) return cb(er)
+ // bins should always be executable.
+ // XXX skip chmod on windows?
+ fs.chmod(src, execMode, function (er) {
+ if (er && er.code === 'ENOENT' && opts.ignoreScripts) {
+ return cb()
+ }
+ if (er) return cb(er)
+ isHashbangFile(src).then((isHashbang) => {
+ if (isHashbang) {
+ opts.log.silly('linkBins', 'Converting line endings of hashbang file:', src)
+ return dos2Unix(src)
+ }
+ }).then(() => {
+ if (!gtop) return cb()
+ var dest = path.resolve(binRoot, bin)
+ var out = opts.parseable
+ ? dest + '::' + src + ':BINFILE'
+ : dest + ' -> ' + src
+
+ if (!opts.json && !opts.parseable) {
+ opts.log.clearProgress()
+ console.log(out)
+ opts.log.showProgress()
+ }
+ cb()
+ }).catch(cb)
+ })
+ })
+ }, cb)
+}
+
+function linkBin (from, to, opts, cb) {
+ if (process.platform !== 'win32') {
+ return linkIfExists(from, to, opts, cb)
+ } else {
+ return cmdShimIfExists(from, to, cb)
+ }
+}
+
+function linkMans (pkg, folder, parent, gtop, opts, cb) {
+ if (!pkg.man || !gtop || process.platform === 'win32') return cb()
+
+ var manRoot = path.resolve(opts.prefix, 'share', 'man')
+ opts.log.verbose('linkMans', 'man files are', pkg.man, 'in', manRoot)
+
+ // make sure that the mans are unique.
+ // otherwise, if there are dupes, it'll fail with EEXIST
+ var set = pkg.man.reduce(function (acc, man) {
+ acc[path.basename(man)] = man
+ return acc
+ }, {})
+ pkg.man = pkg.man.filter(function (man) {
+ return set[path.basename(man)] === man
+ })
+
+ asyncMap(pkg.man, function (man, cb) {
+ if (typeof man !== 'string') return cb()
+ opts.log.silly('linkMans', 'preparing to link', man)
+ var parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/)
+ if (!parseMan) {
+ return cb(new Error(
+ man + ' is not a valid name for a man file. ' +
+ 'Man files must end with a number, ' +
+ 'and optionally a .gz suffix if they are compressed.'
+ ))
+ }
+
+ var stem = parseMan[1]
+ var sxn = parseMan[2]
+ var bn = path.basename(stem)
+ var manSrc = path.resolve(folder, man)
+ var manDest = path.join(manRoot, 'man' + sxn, bn)
+
+ linkIfExists(manSrc, manDest, getLinkOpts(opts, gtop && folder), cb)
+ }, cb)
+}
diff --git a/deps/npm/node_modules/bin-links/package.json b/deps/npm/node_modules/bin-links/package.json
new file mode 100644
index 0000000000..318e84e5ce
--- /dev/null
+++ b/deps/npm/node_modules/bin-links/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "bin-links@latest",
+ "_id": "bin-links@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-3desjIEoSt86s+BRZlkLpBPPcHhr4vyUPL/+X1cQuE96NIlkELqnb4Yq+I5gZe47gHsZztA6cm38uMrT9+FWpA==",
+ "_location": "/bin-links",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "tag",
+ "registry": true,
+ "raw": "bin-links@latest",
+ "name": "bin-links",
+ "escapedName": "bin-links",
+ "rawSpec": "latest",
+ "saveSpec": null,
+ "fetchSpec": "latest"
+ },
+ "_requiredBy": [
+ "#USER",
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.0.tgz",
+ "_shasum": "e0a92cb57f01c4dc1088bca2bae6be110b9f64f9",
+ "_spec": "bin-links@latest",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Mike Sherov"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/bin-links/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "bluebird": "^3.5.0",
+ "cmd-shim": "^2.0.2",
+ "fs-write-stream-atomic": "^1.0.10",
+ "gentle-fs": "^2.0.0",
+ "graceful-fs": "^4.1.11",
+ "slide": "^1.1.6"
+ },
+ "deprecated": false,
+ "description": "JavaScript package binary linker",
+ "devDependencies": {
+ "nyc": "^11.1.0",
+ "standard": "^10.0.3",
+ "standard-version": "^4.2.0",
+ "tap": "^10.7.2",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/npm/bin-links#readme",
+ "keywords": [
+ "npm",
+ "gentle",
+ "fs"
+ ],
+ "license": "Artistic-2.0",
+ "main": "index.js",
+ "name": "bin-links",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/npm/bin-links.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --nyc-arg=--all --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "1.1.0"
+}