mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-04 12:40:05 +02:00
update packages to latest version
This commit is contained in:
475
node_modules/npm/lib/npm.js
generated
vendored
Normal file
475
node_modules/npm/lib/npm.js
generated
vendored
Normal file
@@ -0,0 +1,475 @@
|
||||
;(function(){
|
||||
// windows: running "npm blah" in this folder will invoke WSH, not node.
|
||||
if (typeof WScript !== "undefined") {
|
||||
WScript.echo("npm does not work when run\n"
|
||||
+"with the Windows Scripting Host\n\n"
|
||||
+"'cd' to a different directory,\n"
|
||||
+"or type 'npm.cmd <args>',\n"
|
||||
+"or type 'node npm <args>'.")
|
||||
WScript.quit(1)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
var EventEmitter = require("events").EventEmitter
|
||||
, npm = module.exports = new EventEmitter()
|
||||
, npmconf = require("./config/core.js")
|
||||
, log = require("npmlog")
|
||||
, gfs = require('graceful-fs')
|
||||
, fs = gfs.gracefulify(require('fs'))
|
||||
, path = require("path")
|
||||
, abbrev = require("abbrev")
|
||||
, which = require("which")
|
||||
, CachingRegClient = require("./cache/caching-client.js")
|
||||
, charSpin = require("char-spinner")
|
||||
|
||||
npm.config = {
|
||||
loaded: false,
|
||||
get: function() {
|
||||
throw new Error('npm.load() required')
|
||||
},
|
||||
set: function() {
|
||||
throw new Error('npm.load() required')
|
||||
}
|
||||
}
|
||||
|
||||
npm.commands = {}
|
||||
|
||||
npm.rollbacks = []
|
||||
|
||||
try {
|
||||
// startup, ok to do this synchronously
|
||||
var j = JSON.parse(fs.readFileSync(
|
||||
path.join(__dirname, "../package.json"))+"")
|
||||
npm.version = j.version
|
||||
} catch (ex) {
|
||||
try {
|
||||
log.info("error reading version", ex)
|
||||
} catch (er) {}
|
||||
npm.version = ex
|
||||
}
|
||||
|
||||
var commandCache = {}
|
||||
// short names for common things
|
||||
, aliases = { "rm" : "uninstall"
|
||||
, "r" : "uninstall"
|
||||
, "un" : "uninstall"
|
||||
, "unlink" : "uninstall"
|
||||
, "remove" : "uninstall"
|
||||
, "rb" : "rebuild"
|
||||
, "list" : "ls"
|
||||
, "la" : "ls"
|
||||
, "ll" : "ls"
|
||||
, "ln" : "link"
|
||||
, "i" : "install"
|
||||
, "isntall" : "install"
|
||||
, "up" : "update"
|
||||
, "upgrade" : "update"
|
||||
, "c" : "config"
|
||||
, "dist-tags" : "dist-tag"
|
||||
, "info" : "view"
|
||||
, "show" : "view"
|
||||
, "find" : "search"
|
||||
, "s" : "search"
|
||||
, "se" : "search"
|
||||
, "author" : "owner"
|
||||
, "home" : "docs"
|
||||
, "issues": "bugs"
|
||||
, "unstar": "star" // same function
|
||||
, "apihelp" : "help"
|
||||
, "login": "adduser"
|
||||
, "add-user": "adduser"
|
||||
, "tst": "test"
|
||||
, "t": "test"
|
||||
, "find-dupes": "dedupe"
|
||||
, "ddp": "dedupe"
|
||||
, "v": "view"
|
||||
, "verison": "version"
|
||||
}
|
||||
|
||||
, aliasNames = Object.keys(aliases)
|
||||
// these are filenames in .
|
||||
, cmdList = [ "install"
|
||||
, "uninstall"
|
||||
, "cache"
|
||||
, "config"
|
||||
, "set"
|
||||
, "get"
|
||||
, "update"
|
||||
, "outdated"
|
||||
, "prune"
|
||||
, "pack"
|
||||
, "dedupe"
|
||||
|
||||
, "rebuild"
|
||||
, "link"
|
||||
|
||||
, "publish"
|
||||
, "star"
|
||||
, "stars"
|
||||
, "tag"
|
||||
, "adduser"
|
||||
, "logout"
|
||||
, "unpublish"
|
||||
, "owner"
|
||||
, "access"
|
||||
, "team"
|
||||
, "deprecate"
|
||||
, "shrinkwrap"
|
||||
|
||||
, "help"
|
||||
, "help-search"
|
||||
, "ls"
|
||||
, "search"
|
||||
, "view"
|
||||
, "init"
|
||||
, "version"
|
||||
, "edit"
|
||||
, "explore"
|
||||
, "docs"
|
||||
, "repo"
|
||||
, "bugs"
|
||||
, "faq"
|
||||
, "root"
|
||||
, "prefix"
|
||||
, "bin"
|
||||
, "whoami"
|
||||
, "dist-tag"
|
||||
, "ping"
|
||||
|
||||
, "test"
|
||||
, "stop"
|
||||
, "start"
|
||||
, "restart"
|
||||
, "run-script"
|
||||
, "completion"
|
||||
]
|
||||
, plumbing = [ "build"
|
||||
, "unbuild"
|
||||
, "xmas"
|
||||
, "substack"
|
||||
, "visnup"
|
||||
]
|
||||
, littleGuys = [ "isntall", "verison" ]
|
||||
, fullList = cmdList.concat(aliasNames).filter(function (c) {
|
||||
return plumbing.indexOf(c) === -1
|
||||
})
|
||||
, abbrevs = abbrev(fullList)
|
||||
|
||||
// we have our reasons
|
||||
fullList = npm.fullList = fullList.filter(function (c) {
|
||||
return littleGuys.indexOf(c) === -1
|
||||
})
|
||||
|
||||
npm.spinner =
|
||||
{ int: null
|
||||
, started: false
|
||||
, start: function () {
|
||||
if (npm.spinner.int) return
|
||||
var c = npm.config.get("spin")
|
||||
if (!c) return
|
||||
var stream = npm.config.get("logstream")
|
||||
var opt = { tty: c !== "always", stream: stream }
|
||||
opt.cleanup = !npm.spinner.started
|
||||
npm.spinner.int = charSpin(opt)
|
||||
npm.spinner.started = true
|
||||
}
|
||||
, stop: function () {
|
||||
clearInterval(npm.spinner.int)
|
||||
npm.spinner.int = null
|
||||
}
|
||||
}
|
||||
|
||||
Object.keys(abbrevs).concat(plumbing).forEach(function addCommand (c) {
|
||||
Object.defineProperty(npm.commands, c, { get : function () {
|
||||
if (!loaded) throw new Error(
|
||||
"Call npm.load(config, cb) before using this command.\n"+
|
||||
"See the README.md or cli.js for example usage.")
|
||||
var a = npm.deref(c)
|
||||
if (c === "la" || c === "ll") {
|
||||
npm.config.set("long", true)
|
||||
}
|
||||
|
||||
npm.command = c
|
||||
if (commandCache[a]) return commandCache[a]
|
||||
|
||||
var cmd = require(__dirname+"/"+a+".js")
|
||||
|
||||
commandCache[a] = function () {
|
||||
var args = Array.prototype.slice.call(arguments, 0)
|
||||
if (typeof args[args.length - 1] !== "function") {
|
||||
args.push(defaultCb)
|
||||
}
|
||||
if (args.length === 1) args.unshift([])
|
||||
|
||||
npm.registry.version = npm.version
|
||||
if (!npm.registry.refer) {
|
||||
npm.registry.refer = [a].concat(args[0]).map(function (arg) {
|
||||
// exclude anything that might be a URL, path, or private module
|
||||
// Those things will always have a slash in them somewhere
|
||||
if (arg && arg.match && arg.match(/\/|\\/)) {
|
||||
return "[REDACTED]"
|
||||
} else {
|
||||
return arg
|
||||
}
|
||||
}).filter(function (arg) {
|
||||
return arg && arg.match
|
||||
}).join(" ")
|
||||
}
|
||||
|
||||
cmd.apply(npm, args)
|
||||
}
|
||||
|
||||
Object.keys(cmd).forEach(function (k) {
|
||||
commandCache[a][k] = cmd[k]
|
||||
})
|
||||
|
||||
return commandCache[a]
|
||||
}, enumerable: fullList.indexOf(c) !== -1, configurable: true })
|
||||
|
||||
// make css-case commands callable via camelCase as well
|
||||
if (c.match(/\-([a-z])/)) {
|
||||
addCommand(c.replace(/\-([a-z])/g, function (a, b) {
|
||||
return b.toUpperCase()
|
||||
}))
|
||||
}
|
||||
})
|
||||
|
||||
function defaultCb (er, data) {
|
||||
if (er) console.error(er.stack || er.message)
|
||||
else console.log(data)
|
||||
}
|
||||
|
||||
npm.deref = function (c) {
|
||||
if (!c) return ""
|
||||
if (c.match(/[A-Z]/)) c = c.replace(/([A-Z])/g, function (m) {
|
||||
return "-" + m.toLowerCase()
|
||||
})
|
||||
if (plumbing.indexOf(c) !== -1) return c
|
||||
var a = abbrevs[c]
|
||||
if (aliases[a]) a = aliases[a]
|
||||
return a
|
||||
}
|
||||
|
||||
var loaded = false
|
||||
, loading = false
|
||||
, loadErr = null
|
||||
, loadListeners = []
|
||||
|
||||
function loadCb (er) {
|
||||
loadListeners.forEach(function (cb) {
|
||||
process.nextTick(cb.bind(npm, er, npm))
|
||||
})
|
||||
loadListeners.length = 0
|
||||
}
|
||||
|
||||
npm.load = function (cli, cb_) {
|
||||
if (!cb_ && typeof cli === "function") cb_ = cli , cli = {}
|
||||
if (!cb_) cb_ = function () {}
|
||||
if (!cli) cli = {}
|
||||
loadListeners.push(cb_)
|
||||
if (loaded || loadErr) return cb(loadErr)
|
||||
if (loading) return
|
||||
loading = true
|
||||
var onload = true
|
||||
|
||||
function cb (er) {
|
||||
if (loadErr) return
|
||||
loadErr = er
|
||||
if (er) return cb_(er)
|
||||
if (npm.config.get("force")) {
|
||||
log.warn("using --force", "I sure hope you know what you are doing.")
|
||||
}
|
||||
npm.config.loaded = true
|
||||
loaded = true
|
||||
loadCb(loadErr = er)
|
||||
onload = onload && npm.config.get('onload-script')
|
||||
if (onload) {
|
||||
try {
|
||||
require(onload)
|
||||
} catch (err) {
|
||||
log.warn('onload-script', 'failed to require onload script', onload)
|
||||
log.warn('onload-script', err)
|
||||
}
|
||||
onload = false
|
||||
}
|
||||
}
|
||||
|
||||
log.pause()
|
||||
|
||||
load(npm, cli, cb)
|
||||
}
|
||||
|
||||
function load (npm, cli, cb) {
|
||||
which(process.argv[0], function (er, node) {
|
||||
if (!er && node.toUpperCase() !== process.execPath.toUpperCase()) {
|
||||
log.verbose("node symlink", node)
|
||||
process.execPath = node
|
||||
process.installPrefix = path.resolve(node, "..", "..")
|
||||
}
|
||||
|
||||
// look up configs
|
||||
//console.error("about to look up configs")
|
||||
|
||||
var builtin = path.resolve(__dirname, "..", "npmrc")
|
||||
npmconf.load(cli, builtin, function (er, config) {
|
||||
if (er === config) er = null
|
||||
|
||||
npm.config = config
|
||||
if (er) return cb(er)
|
||||
|
||||
// if the "project" config is not a filename, and we're
|
||||
// not in global mode, then that means that it collided
|
||||
// with either the default or effective userland config
|
||||
if (!config.get("global")
|
||||
&& config.sources.project
|
||||
&& config.sources.project.type !== "ini") {
|
||||
log.verbose("config"
|
||||
, "Skipping project config: %s. "
|
||||
+ "(matches userconfig)"
|
||||
, config.localPrefix + "/.npmrc")
|
||||
}
|
||||
|
||||
// Include npm-version and node-version in user-agent
|
||||
var ua = config.get("user-agent") || ""
|
||||
ua = ua.replace(/\{node-version\}/gi, process.version)
|
||||
ua = ua.replace(/\{npm-version\}/gi, npm.version)
|
||||
ua = ua.replace(/\{platform\}/gi, process.platform)
|
||||
ua = ua.replace(/\{arch\}/gi, process.arch)
|
||||
config.set("user-agent", ua)
|
||||
|
||||
var color = config.get("color")
|
||||
|
||||
log.level = config.get("loglevel")
|
||||
log.heading = config.get("heading") || "npm"
|
||||
log.stream = config.get("logstream")
|
||||
|
||||
switch (color) {
|
||||
case "always":
|
||||
log.enableColor()
|
||||
npm.color = true
|
||||
break
|
||||
case false:
|
||||
log.disableColor()
|
||||
npm.color = false
|
||||
break
|
||||
default:
|
||||
var tty = require("tty")
|
||||
if (process.stdout.isTTY) npm.color = true
|
||||
else if (!tty.isatty) npm.color = true
|
||||
else if (tty.isatty(1)) npm.color = true
|
||||
else npm.color = false
|
||||
break
|
||||
}
|
||||
|
||||
log.resume()
|
||||
|
||||
// at this point the configs are all set.
|
||||
// go ahead and spin up the registry client.
|
||||
npm.registry = new CachingRegClient(npm.config)
|
||||
|
||||
var umask = npm.config.get("umask")
|
||||
npm.modes = { exec: 0777 & (~umask)
|
||||
, file: 0666 & (~umask)
|
||||
, umask: umask }
|
||||
|
||||
var gp = Object.getOwnPropertyDescriptor(config, "globalPrefix")
|
||||
Object.defineProperty(npm, "globalPrefix", gp)
|
||||
|
||||
var lp = Object.getOwnPropertyDescriptor(config, "localPrefix")
|
||||
Object.defineProperty(npm, "localPrefix", lp)
|
||||
|
||||
return cb(null, npm)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Object.defineProperty(npm, "prefix",
|
||||
{ get : function () {
|
||||
return npm.config.get("global") ? npm.globalPrefix : npm.localPrefix
|
||||
}
|
||||
, set : function (r) {
|
||||
var k = npm.config.get("global") ? "globalPrefix" : "localPrefix"
|
||||
return npm[k] = r
|
||||
}
|
||||
, enumerable : true
|
||||
})
|
||||
|
||||
Object.defineProperty(npm, "bin",
|
||||
{ get : function () {
|
||||
if (npm.config.get("global")) return npm.globalBin
|
||||
return path.resolve(npm.root, ".bin")
|
||||
}
|
||||
, enumerable : true
|
||||
})
|
||||
|
||||
Object.defineProperty(npm, "globalBin",
|
||||
{ get : function () {
|
||||
var b = npm.globalPrefix
|
||||
if (process.platform !== "win32") b = path.resolve(b, "bin")
|
||||
return b
|
||||
}
|
||||
})
|
||||
|
||||
Object.defineProperty(npm, "dir",
|
||||
{ get : function () {
|
||||
if (npm.config.get("global")) return npm.globalDir
|
||||
return path.resolve(npm.prefix, "node_modules")
|
||||
}
|
||||
, enumerable : true
|
||||
})
|
||||
|
||||
Object.defineProperty(npm, "globalDir",
|
||||
{ get : function () {
|
||||
return (process.platform !== "win32")
|
||||
? path.resolve(npm.globalPrefix, "lib", "node_modules")
|
||||
: path.resolve(npm.globalPrefix, "node_modules")
|
||||
}
|
||||
, enumerable : true
|
||||
})
|
||||
|
||||
Object.defineProperty(npm, "root",
|
||||
{ get : function () { return npm.dir } })
|
||||
|
||||
Object.defineProperty(npm, "cache",
|
||||
{ get : function () { return npm.config.get("cache") }
|
||||
, set : function (r) { return npm.config.set("cache", r) }
|
||||
, enumerable : true
|
||||
})
|
||||
|
||||
var tmpFolder
|
||||
var rand = require("crypto").randomBytes(4).toString("hex")
|
||||
Object.defineProperty(npm, "tmp",
|
||||
{ get : function () {
|
||||
if (!tmpFolder) tmpFolder = "npm-" + process.pid + "-" + rand
|
||||
return path.resolve(npm.config.get("tmp"), tmpFolder)
|
||||
}
|
||||
, enumerable : true
|
||||
})
|
||||
|
||||
// the better to repl you with
|
||||
Object.getOwnPropertyNames(npm.commands).forEach(function (n) {
|
||||
if (npm.hasOwnProperty(n) || n === "config") return
|
||||
|
||||
Object.defineProperty(npm, n, { get: function () {
|
||||
return function () {
|
||||
var args = Array.prototype.slice.call(arguments, 0)
|
||||
, cb = defaultCb
|
||||
|
||||
if (args.length === 1 && Array.isArray(args[0])) {
|
||||
args = args[0]
|
||||
}
|
||||
|
||||
if (typeof args[args.length - 1] === "function") {
|
||||
cb = args.pop()
|
||||
}
|
||||
|
||||
npm.commands[n](args, cb)
|
||||
}
|
||||
}, enumerable: false, configurable: true })
|
||||
})
|
||||
|
||||
if (require.main === module) {
|
||||
require("../bin/npm-cli.js")
|
||||
}
|
||||
})()
|
Reference in New Issue
Block a user