__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* eslint-disable standard/no-callback-literal */
module.exports = distTag
const BB = require('bluebird')
const figgyPudding = require('figgy-pudding')
const log = require('npmlog')
const npa = require('libnpm/parse-arg')
const npmConfig = require('./config/figgy-config.js')
const output = require('./utils/output.js')
const otplease = require('./utils/otplease.js')
const readLocalPkg = BB.promisify(require('./utils/read-local-package.js'))
const regFetch = require('libnpm/fetch')
const semver = require('semver')
const usage = require('./utils/usage')
const DistTagOpts = figgyPudding({
tag: {}
})
distTag.usage = usage(
'dist-tag',
'npm dist-tag add <pkg>@<version> [<tag>]' +
'\nnpm dist-tag rm <pkg> <tag>' +
'\nnpm dist-tag ls [<pkg>]'
)
distTag.completion = function (opts, cb) {
var argv = opts.conf.argv.remain
if (argv.length === 2) {
return cb(null, ['add', 'rm', 'ls'])
}
switch (argv[2]) {
default:
return cb()
}
}
function UsageError () {
throw Object.assign(new Error('Usage:\n' + distTag.usage), {
code: 'EUSAGE'
})
}
function distTag ([cmd, pkg, tag], cb) {
const opts = DistTagOpts(npmConfig())
return BB.try(() => {
switch (cmd) {
case 'add': case 'a': case 'set': case 's':
return add(pkg, tag, opts)
case 'rm': case 'r': case 'del': case 'd': case 'remove':
return remove(pkg, tag, opts)
case 'ls': case 'l': case 'sl': case 'list':
return list(pkg, opts)
default:
if (!pkg) {
return list(cmd, opts)
} else {
UsageError()
}
}
}).then(
x => cb(null, x),
err => {
if (err.code === 'EUSAGE') {
cb(err.message)
} else {
cb(err)
}
}
)
}
function add (spec, tag, opts) {
spec = npa(spec || '')
const version = spec.rawSpec
const t = (tag || opts.tag).trim()
log.verbose('dist-tag add', t, 'to', spec.name + '@' + version)
if (!spec || !version || !t) UsageError()
if (semver.validRange(t)) {
throw new Error('Tag name must not be a valid SemVer range: ' + t)
}
return fetchTags(spec, opts).then(tags => {
if (tags[t] === version) {
log.warn('dist-tag add', t, 'is already set to version', version)
return
}
tags[t] = version
const url = `/-/package/${spec.escapedName}/dist-tags/${encodeURIComponent(t)}`
const reqOpts = opts.concat({
method: 'PUT',
body: JSON.stringify(version),
headers: {
'content-type': 'application/json'
},
spec
})
return otplease(reqOpts, reqOpts => regFetch(url, reqOpts)).then(() => {
output(`+${t}: ${spec.name}@${version}`)
})
})
}
function remove (spec, tag, opts) {
spec = npa(spec || '')
log.verbose('dist-tag del', tag, 'from', spec.name)
return fetchTags(spec, opts).then(tags => {
if (!tags[tag]) {
log.info('dist-tag del', tag, 'is not a dist-tag on', spec.name)
throw new Error(tag + ' is not a dist-tag on ' + spec.name)
}
const version = tags[tag]
delete tags[tag]
const url = `/-/package/${spec.escapedName}/dist-tags/${encodeURIComponent(tag)}`
const reqOpts = opts.concat({
method: 'DELETE',
spec
})
return otplease(reqOpts, reqOpts => regFetch(url, reqOpts)).then(() => {
output(`-${tag}: ${spec.name}@${version}`)
})
})
}
function list (spec, opts) {
if (!spec) {
return readLocalPkg().then(pkg => {
if (!pkg) { UsageError() }
return list(pkg, opts)
})
}
spec = npa(spec)
return fetchTags(spec, opts).then(tags => {
var msg = Object.keys(tags).map(k => `${k}: ${tags[k]}`).sort().join('\n')
output(msg)
return tags
}, err => {
log.error('dist-tag ls', "Couldn't get dist-tag data for", spec)
throw err
})
}
function fetchTags (spec, opts) {
return regFetch.json(
`/-/package/${spec.escapedName}/dist-tags`,
opts.concat({
'prefer-online': true,
spec
})
).then(data => {
if (data && typeof data === 'object') delete data._etag
if (!data || !Object.keys(data).length) {
throw new Error('No dist-tags found for ' + spec.name)
}
return data
})
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| auth | Folder | 0755 |
|
|
| config | Folder | 0755 |
|
|
| doctor | Folder | 0755 |
|
|
| install | Folder | 0755 |
|
|
| search | Folder | 0755 |
|
|
| utils | Folder | 0755 |
|
|
| access.js | File | 5.54 KB | 0644 |
|
| adduser.js | File | 1.31 KB | 0644 |
|
| audit.js | File | 10.56 KB | 0644 |
|
| bin.js | File | 515 B | 0644 |
|
| bugs.js | File | 864 B | 0644 |
|
| build.js | File | 4.44 KB | 0644 |
|
| cache.js | File | 4.66 KB | 0644 |
|
| ci.js | File | 1.31 KB | 0644 |
|
| completion.js | File | 7.11 KB | 0644 |
|
| config.js | File | 7.43 KB | 0644 |
|
| dedupe.js | File | 4.88 KB | 0644 |
|
| deprecate.js | File | 2.11 KB | 0644 |
|
| dist-tag.js | File | 4.11 KB | 0644 |
|
| docs.js | File | 1.04 KB | 0644 |
|
| doctor.js | File | 3.98 KB | 0644 |
|
| edit.js | File | 1.37 KB | 0644 |
|
| explore.js | File | 1.67 KB | 0644 |
|
| fetch-package-metadata.js | File | 3.97 KB | 0644 |
|
| fetch-package-metadata.md | File | 1.77 KB | 0644 |
|
| fund.js | File | 4.91 KB | 0644 |
|
| get.js | File | 235 B | 0644 |
|
| help-search.js | File | 5.64 KB | 0644 |
|
| help.js | File | 6.35 KB | 0644 |
|
| hook.js | File | 4.62 KB | 0644 |
|
| init.js | File | 2.74 KB | 0644 |
|
| install-ci-test.js | File | 486 B | 0644 |
|
| install-test.js | File | 507 B | 0644 |
|
| install.js | File | 36.47 KB | 0644 |
|
| link.js | File | 5.6 KB | 0644 |
|
| logout.js | File | 1.26 KB | 0644 |
|
| ls.js | File | 16.09 KB | 0644 |
|
| npm.js | File | 14.37 KB | 0644 |
|
| org.js | File | 4.18 KB | 0644 |
|
| outdated.js | File | 12.28 KB | 0644 |
|
| owner.js | File | 6.6 KB | 0644 |
|
| pack.js | File | 11.79 KB | 0644 |
|
| ping.js | File | 1.11 KB | 0644 |
|
| prefix.js | File | 330 B | 0644 |
|
| profile.js | File | 11.13 KB | 0644 |
|
| prune.js | File | 2.23 KB | 0644 |
|
| publish.js | File | 5.14 KB | 0644 |
|
| rebuild.js | File | 2.09 KB | 0644 |
|
| repo.js | File | 1.44 KB | 0644 |
|
| restart.js | File | 64 B | 0644 |
|
| root.js | File | 320 B | 0644 |
|
| run-script.js | File | 5.41 KB | 0644 |
|
| search.js | File | 3.36 KB | 0644 |
|
| set.js | File | 276 B | 0644 |
|
| shrinkwrap.js | File | 9.82 KB | 0644 |
|
| star.js | File | 2.11 KB | 0644 |
|
| stars.js | File | 1.03 KB | 0644 |
|
| start.js | File | 62 B | 0644 |
|
| stop.js | File | 61 B | 0644 |
|
| substack.js | File | 509 B | 0644 |
|
| team.js | File | 4.61 KB | 0644 |
|
| test.js | File | 374 B | 0644 |
|
| token.js | File | 6.66 KB | 0644 |
|
| unbuild.js | File | 4.27 KB | 0644 |
|
| uninstall.js | File | 2.21 KB | 0644 |
|
| unpublish.js | File | 3.51 KB | 0644 |
|
| update.js | File | 2.16 KB | 0644 |
|
| version.js | File | 9.79 KB | 0644 |
|
| view.js | File | 15.11 KB | 0644 |
|
| visnup.js | File | 4.01 KB | 0644 |
|
| whoami.js | File | 1.77 KB | 0644 |
|
| xmas.js | File | 1.62 KB | 0644 |
|