GRAYBYTE WORDPRESS FILE MANAGER8960

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /lib/node_modules/npm/lib/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /lib/node_modules/npm/lib//token.js
'use strict'

const profile = require('libnpm/profile')
const npm = require('./npm.js')
const figgyPudding = require('figgy-pudding')
const npmConfig = require('./config/figgy-config.js')
const output = require('./utils/output.js')
const otplease = require('./utils/otplease.js')
const Table = require('cli-table3')
const Bluebird = require('bluebird')
const isCidrV4 = require('is-cidr').v4
const isCidrV6 = require('is-cidr').v6
const readUserInfo = require('./utils/read-user-info.js')
const ansistyles = require('ansistyles')
const log = require('npmlog')
const pulseTillDone = require('./utils/pulse-till-done.js')

module.exports = token

token._validateCIDRList = validateCIDRList

token.usage =
  'npm token list\n' +
  'npm token revoke <tokenKey>\n' +
  'npm token create [--read-only] [--cidr=list]\n'

token.subcommands = ['list', 'revoke', 'create']

token.completion = function (opts, cb) {
  var argv = opts.conf.argv.remain

  switch (argv[2]) {
    case 'list':
    case 'revoke':
    case 'create':
      return cb(null, [])
    default:
      return cb(new Error(argv[2] + ' not recognized'))
  }
}

function withCb (prom, cb) {
  prom.then((value) => cb(null, value), cb)
}

function token (args, cb) {
  log.gauge.show('token')
  if (args.length === 0) return withCb(list([]), cb)
  switch (args[0]) {
    case 'list':
    case 'ls':
      withCb(list(), cb)
      break
    case 'delete':
    case 'revoke':
    case 'remove':
    case 'rm':
      withCb(rm(args.slice(1)), cb)
      break
    case 'create':
      withCb(create(args.slice(1)), cb)
      break
    default:
      cb(new Error('Unknown profile command: ' + args[0]))
  }
}

function generateTokenIds (tokens, minLength) {
  const byId = {}
  tokens.forEach((token) => {
    token.id = token.key
    for (let ii = minLength; ii < token.key.length; ++ii) {
      if (!tokens.some((ot) => ot !== token && ot.key.slice(0, ii) === token.key.slice(0, ii))) {
        token.id = token.key.slice(0, ii)
        break
      }
    }
    byId[token.id] = token
  })
  return byId
}

const TokenConfig = figgyPudding({
  auth: {},
  registry: {},
  otp: {},
  cidr: {},
  'read-only': {},
  json: {},
  parseable: {}
})

function config () {
  let conf = TokenConfig(npmConfig())
  const creds = npm.config.getCredentialsByURI(conf.registry)
  if (creds.token) {
    conf = conf.concat({
      auth: { token: creds.token }
    })
  } else if (creds.username) {
    conf = conf.concat({
      auth: {
        basic: {
          username: creds.username,
          password: creds.password
        }
      }
    })
  } else if (creds.auth) {
    const auth = Buffer.from(creds.auth, 'base64').toString().split(':', 2)
    conf = conf.concat({
      auth: {
        basic: {
          username: auth[0],
          password: auth[1]
        }
      }
    })
  } else {
    conf = conf.concat({ auth: {} })
  }
  if (conf.otp) conf.auth.otp = conf.otp
  return conf
}

function list (args) {
  const conf = config()
  log.info('token', 'getting list')
  return pulseTillDone.withPromise(profile.listTokens(conf)).then((tokens) => {
    if (conf.json) {
      output(JSON.stringify(tokens, null, 2))
      return
    } else if (conf.parseable) {
      output(['key', 'token', 'created', 'readonly', 'CIDR whitelist'].join('\t'))
      tokens.forEach((token) => {
        output([
          token.key,
          token.token,
          token.created,
          token.readonly ? 'true' : 'false',
          token.cidr_whitelist ? token.cidr_whitelist.join(',') : ''
        ].join('\t'))
      })
      return
    }
    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(', ') : ''
      ])
    })
    output(table.toString())
  })
}

function rm (args) {
  if (args.length === 0) {
    throw new Error('npm token revoke <tokenKey>')
  }
  const conf = config()
  const toRemove = []
  const progress = log.newItem('removing tokens', toRemove.length)
  progress.info('token', 'getting existing list')
  return pulseTillDone.withPromise(profile.listTokens(conf).then((tokens) => {
    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(`Token ID "${id}" was ambiguous, a new token may have been created since you last ran \`npm-profile token list\`.`)
      } else {
        const tokenMatches = tokens.filter((token) => id.indexOf(token.token) === 0)
        if (tokenMatches === 0) {
          throw new Error(`Unknown token id or value "${id}".`)
        }
        toRemove.push(id)
      }
    })
    return Bluebird.map(toRemove, (key) => {
      return otplease(conf, conf => {
        return profile.removeToken(key, conf)
      })
    })
  })).then(() => {
    if (conf.json) {
      output(JSON.stringify(toRemove))
    } else if (conf.parseable) {
      output(toRemove.join('\t'))
    } else {
      output('Removed ' + toRemove.length + ' token' + (toRemove.length !== 1 ? 's' : ''))
    }
  })
}

function create (args) {
  const conf = config()
  const cidr = conf.cidr
  const readonly = conf['read-only']

  const validCIDR = validateCIDRList(cidr)
  return readUserInfo.password().then((password) => {
    log.info('token', 'creating')
    return pulseTillDone.withPromise(otplease(conf, conf => {
      return profile.createToken(password, readonly, validCIDR, conf)
    }))
  }).then((result) => {
    delete result.key
    delete result.updated
    if (conf.json) {
      output(JSON.stringify(result))
    } else if (conf.parseable) {
      Object.keys(result).forEach((k) => output(k + '\t' + result[k]))
    } else {
      const table = new Table()
      Object.keys(result).forEach((k) => table.push({[ansistyles.bright(k)]: String(result[k])}))
      output(table.toString())
    }
  })
}

function validateCIDR (cidr) {
  if (isCidrV6(cidr)) {
    throw new Error('CIDR whitelist can only contain IPv4 addresses, ' + cidr + ' is IPv6')
  }
  if (!isCidrV4(cidr)) {
    throw new Error('CIDR whitelist contains invalid CIDR entry: ' + cidr)
  }
}

function validateCIDRList (cidrs) {
  const maybeList = cidrs ? (Array.isArray(cidrs) ? cidrs : [cidrs]) : []
  const list = maybeList.length === 1 ? maybeList[0].split(/,\s*/) : maybeList
  list.forEach(validateCIDR)
  return list
}

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
January 01 1970 00:00:00
root / root
0
auth
--
March 03 2024 22:36:29
root / root
0755
config
--
March 03 2024 22:36:29
root / root
0755
doctor
--
March 03 2024 22:36:29
root / root
0755
install
--
March 03 2024 22:36:29
root / root
0755
search
--
March 03 2024 22:36:29
root / root
0755
utils
--
March 03 2024 22:36:29
root / root
0755
access.js
5.539 KB
March 10 2021 14:36:36
root / root
0644
adduser.js
1.306 KB
March 10 2021 14:36:36
root / root
0644
audit.js
10.558 KB
March 10 2021 14:36:36
root / root
0644
bin.js
0.503 KB
March 10 2021 14:36:36
root / root
0644
bugs.js
0.844 KB
March 10 2021 14:36:35
root / root
0644
build.js
4.438 KB
March 10 2021 14:36:36
root / root
0644
cache.js
4.661 KB
March 10 2021 14:36:36
root / root
0644
ci.js
1.31 KB
March 10 2021 14:36:36
root / root
0644
completion.js
7.107 KB
March 10 2021 14:36:36
root / root
0644
config.js
7.434 KB
March 10 2021 14:36:36
root / root
0644
dedupe.js
4.882 KB
March 10 2021 14:36:35
root / root
0644
deprecate.js
2.106 KB
March 10 2021 14:36:35
root / root
0644
dist-tag.js
4.105 KB
March 10 2021 14:36:36
root / root
0644
docs.js
1.038 KB
March 10 2021 14:36:36
root / root
0644
doctor.js
3.979 KB
March 10 2021 14:36:35
root / root
0644
edit.js
1.374 KB
March 10 2021 14:36:36
root / root
0644
explore.js
1.669 KB
March 10 2021 14:36:36
root / root
0644
fetch-package-metadata.js
3.969 KB
March 10 2021 14:36:36
root / root
0644
fetch-package-metadata.md
1.769 KB
March 10 2021 14:36:36
root / root
0644
fund.js
4.908 KB
March 10 2021 14:36:36
root / root
0644
get.js
0.229 KB
March 10 2021 14:36:36
root / root
0644
help-search.js
5.642 KB
March 10 2021 14:36:36
root / root
0644
help.js
6.354 KB
March 10 2021 14:36:36
root / root
0644
hook.js
4.616 KB
March 10 2021 14:36:35
root / root
0644
init.js
2.739 KB
March 10 2021 14:36:36
root / root
0644
install-ci-test.js
0.475 KB
March 10 2021 14:36:36
root / root
0644
install-test.js
0.495 KB
March 10 2021 14:36:36
root / root
0644
install.js
36.47 KB
March 10 2021 14:36:36
root / root
0644
link.js
5.604 KB
March 10 2021 14:36:36
root / root
0644
logout.js
1.259 KB
March 10 2021 14:36:36
root / root
0644
ls.js
16.094 KB
March 10 2021 14:36:36
root / root
0644
npm.js
14.374 KB
March 10 2021 14:36:36
root / root
0644
org.js
4.176 KB
March 10 2021 14:36:36
root / root
0644
outdated.js
12.277 KB
March 10 2021 14:36:35
root / root
0644
owner.js
6.596 KB
March 10 2021 14:36:36
root / root
0644
pack.js
11.785 KB
March 10 2021 14:36:36
root / root
0644
ping.js
1.114 KB
March 10 2021 14:36:36
root / root
0644
prefix.js
0.322 KB
March 10 2021 14:36:36
root / root
0644
profile.js
11.134 KB
March 10 2021 14:36:36
root / root
0644
prune.js
2.228 KB
March 10 2021 14:36:36
root / root
0644
publish.js
5.141 KB
March 10 2021 14:36:36
root / root
0644
rebuild.js
2.093 KB
March 10 2021 14:36:36
root / root
0644
repo.js
1.437 KB
March 10 2021 14:36:35
root / root
0644
restart.js
0.063 KB
March 10 2021 14:36:36
root / root
0644
root.js
0.313 KB
March 10 2021 14:36:35
root / root
0644
run-script.js
5.41 KB
March 10 2021 14:36:36
root / root
0644
search.js
3.361 KB
March 10 2021 14:36:36
root / root
0644
set.js
0.27 KB
March 10 2021 14:36:36
root / root
0644
shrinkwrap.js
9.82 KB
March 10 2021 14:36:36
root / root
0644
star.js
2.106 KB
March 10 2021 14:36:36
root / root
0644
stars.js
1.029 KB
March 10 2021 14:36:36
root / root
0644
start.js
0.061 KB
March 10 2021 14:36:36
root / root
0644
stop.js
0.06 KB
March 10 2021 14:36:36
root / root
0644
substack.js
0.497 KB
March 10 2021 14:36:36
root / root
0644
team.js
4.613 KB
March 10 2021 14:36:36
root / root
0644
test.js
0.365 KB
March 10 2021 14:36:36
root / root
0644
token.js
6.658 KB
March 10 2021 14:36:36
root / root
0644
unbuild.js
4.271 KB
March 10 2021 14:36:36
root / root
0644
uninstall.js
2.208 KB
March 10 2021 14:36:35
root / root
0644
unpublish.js
3.51 KB
March 10 2021 14:36:36
root / root
0644
update.js
2.161 KB
March 10 2021 14:36:36
root / root
0644
version.js
9.794 KB
March 10 2021 14:36:36
root / root
0644
view.js
15.11 KB
March 10 2021 14:36:36
root / root
0644
visnup.js
4.008 KB
March 10 2021 14:36:35
root / root
0644
whoami.js
1.767 KB
March 10 2021 14:36:36
root / root
0644
xmas.js
1.624 KB
March 10 2021 14:36:35
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF