X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.maps.server%2Fnode%2Fnode-v4.8.0-win-x64%2Fnode_modules%2Fnpm%2Flib%2Funpublish.js;fp=org.simantics.maps.server%2Fnode%2Fnode-v4.8.0-win-x64%2Fnode_modules%2Fnpm%2Flib%2Funpublish.js;h=111f27aa2d2997cb90d45585dc222c59c79bc206;hb=2529be6d456deeb07c128603ce4971f1dc29b695;hp=0000000000000000000000000000000000000000;hpb=2636fc31c16c23711cf2b06a4ae8537bba9c1d35;p=simantics%2Fdistrict.git diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/unpublish.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/unpublish.js new file mode 100644 index 00000000..111f27aa --- /dev/null +++ b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/unpublish.js @@ -0,0 +1,115 @@ + +module.exports = unpublish + +var log = require("npmlog") +var npm = require("./npm.js") +var readJson = require("read-package-json") +var path = require("path") +var mapToRegistry = require("./utils/map-to-registry.js") +var npa = require("npm-package-arg") +var getPublishConfig = require("./utils/get-publish-config.js") + +unpublish.usage = "npm unpublish [@]" + +unpublish.completion = function (opts, cb) { + if (opts.conf.argv.remain.length >= 3) return cb() + npm.commands.whoami([], true, function (er, username) { + if (er) return cb() + + var un = encodeURIComponent(username) + if (!un) return cb() + var byUser = "-/by-user/" + un + mapToRegistry(byUser, npm.config, function (er, uri, auth) { + if (er) return cb(er) + + npm.registry.get(uri, { auth : auth }, function (er, pkgs) { + // do a bit of filtering at this point, so that we don't need + // to fetch versions for more than one thing, but also don't + // accidentally a whole project. + pkgs = pkgs[un] + if (!pkgs || !pkgs.length) return cb() + var pp = npa(opts.partialWord).name + pkgs = pkgs.filter(function (p) { + return p.indexOf(pp) === 0 + }) + if (pkgs.length > 1) return cb(null, pkgs) + mapToRegistry(pkgs[0], npm.config, function (er, uri, auth) { + if (er) return cb(er) + + npm.registry.get(uri, { auth : auth }, function (er, d) { + if (er) return cb(er) + var vers = Object.keys(d.versions) + if (!vers.length) return cb(null, pkgs) + return cb(null, vers.map(function (v) { + return pkgs[0] + "@" + v + })) + }) + }) + }) + }) + }) +} + +function unpublish (args, cb) { + if (args.length > 1) return cb(unpublish.usage) + + var thing = args.length ? npa(args[0]) : {} + , project = thing.name + , version = thing.rawSpec + + log.silly("unpublish", "args[0]", args[0]) + log.silly("unpublish", "thing", thing) + if (!version && !npm.config.get("force")) { + return cb("Refusing to delete entire project.\n" + + "Run with --force to do this.\n" + + unpublish.usage) + } + + if (!project || path.resolve(project) === npm.localPrefix) { + // if there's a package.json in the current folder, then + // read the package name and version out of that. + var cwdJson = path.join(npm.localPrefix, "package.json") + return readJson(cwdJson, function (er, data) { + if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) + if (er) return cb("Usage:\n" + unpublish.usage) + log.verbose('unpublish', data) + gotProject(data.name, data.version, data.publishConfig, cb) + }) + } + return gotProject(project, version, cb) +} + +function gotProject (project, version, publishConfig, cb_) { + if (typeof cb_ !== 'function') { + cb_ = publishConfig + publishConfig = null + } + + function cb (er) { + if (er) return cb_(er) + console.log("- " + project + (version ? "@" + version : "")) + cb_() + } + + var mappedConfig = getPublishConfig(publishConfig, npm.config, npm.registry) + var config = mappedConfig.config + var registry = mappedConfig.client + + // remove from the cache first + npm.commands.cache(["clean", project, version], function (er) { + if (er) { + log.error("unpublish", "Failed to clean cache") + return cb(er) + } + + mapToRegistry(project, config, function (er, uri, auth) { + if (er) return cb(er) + + var params = { + version: version, + auth: auth + } + registry.unpublish(uri, params, cb) + }) + }) +}