$65 GRAYBYTE WORDPRESS FILE MANAGER $41

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/alt-nodejs19/root/usr/lib/node_modules/npm/lib/commands/

HOME
Current File : /opt/alt/alt-nodejs19/root/usr/lib/node_modules/npm/lib/commands//help.js
const spawn = require('@npmcli/promise-spawn')
const path = require('path')
const openUrl = require('../utils/open-url.js')
const glob = require('glob')
const localeCompare = require('@isaacs/string-locale-compare')('en')

const globify = pattern => pattern.split('\\').join('/')
const BaseCommand = require('../base-command.js')

// Strips out the number from foo.7 or foo.7. or foo.7.tgz
// We don't currently compress our man pages but if we ever did this would
// seamlessly continue supporting it
const manNumberRegex = /\.(\d+)(\.[^/\\]*)?$/
// hardcoded names for mansections
// XXX: these are used in the docs workspace and should be exported
// from npm so section names can changed more easily
const manSectionNames = {
  1: 'commands',
  5: 'configuring-npm',
  7: 'using-npm',
}

class Help extends BaseCommand {
  static description = 'Get help on npm'
  static name = 'help'
  static usage = ['<term> [<terms..>]']
  static params = ['viewer']

  async completion (opts) {
    if (opts.conf.argv.remain.length > 2) {
      return []
    }
    const g = path.resolve(this.npm.npmRoot, 'man/man[0-9]/*.[0-9]')
    let files = await glob(globify(g))
    // preserve glob@8 behavior
    files = files.sort((a, b) => a.localeCompare(b, 'en'))

    return Object.keys(files.reduce(function (acc, file) {
      file = path.basename(file).replace(/\.[0-9]+$/, '')
      file = file.replace(/^npm-/, '')
      acc[file] = true
      return acc
    }, { help: true }))
  }

  async exec (args) {
    // By default we search all of our man subdirectories, but if the user has
    // asked for a specific one we limit the search to just there
    const manSearch = /^\d+$/.test(args[0]) ? `man${args.shift()}` : 'man*'

    if (!args.length) {
      return this.npm.output(await this.npm.usage)
    }

    // npm help foo bar baz: search topics
    if (args.length > 1) {
      return this.helpSearch(args)
    }

    // `npm help package.json`
    const arg = (this.npm.deref(args[0]) || args[0]).replace('.json', '-json')

    // find either section.n or npm-section.n
    const f = globify(path.resolve(this.npm.npmRoot, `man/${manSearch}/?(npm-)${arg}.[0-9]*`))

    const [man] = await glob(f).then(r => r.sort((a, b) => {
      // Because the glob is (subtly) different from manNumberRegex,
      // we can't rely on it passing.
      const aManNumberMatch = a.match(manNumberRegex)?.[1] || 999
      const bManNumberMatch = b.match(manNumberRegex)?.[1] || 999
      if (aManNumberMatch !== bManNumberMatch) {
        return aManNumberMatch - bManNumberMatch
      }
      return localeCompare(a, b)
    }))

    return man ? this.viewMan(man) : this.helpSearch(args)
  }

  helpSearch (args) {
    return this.npm.exec('help-search', args)
  }

  async viewMan (man) {
    const viewer = this.npm.config.get('viewer')

    if (viewer === 'browser') {
      return openUrl(this.npm, this.htmlMan(man), 'help available at the following URL', true)
    }

    let args = ['man', [man]]
    if (viewer === 'woman') {
      args = ['emacsclient', ['-e', `(woman-find-file '${man}')`]]
    }

    return spawn(...args, { stdio: 'inherit' }).catch(err => {
      if (err.code) {
        throw new Error(`help process exited with code: ${err.code}`)
      } else {
        throw err
      }
    })
  }

  // Returns the path to the html version of the man page
  htmlMan (man) {
    const sect = manSectionNames[man.match(manNumberRegex)[1]]
    const f = path.basename(man).replace(manNumberRegex, '')
    return 'file:///' + path.resolve(this.npm.npmRoot, `docs/output/${sect}/${f}.html`)
  }
}
module.exports = Help

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
31 Aug 2024 8.02 AM
root / root
0755
access.js
6.079 KB
7 Dec 2023 1.07 AM
root / root
0644
adduser.js
1.318 KB
7 Dec 2023 1.07 AM
root / root
0644
audit.js
13.863 KB
7 Dec 2023 1.07 AM
root / root
0644
bugs.js
0.796 KB
7 Dec 2023 1.07 AM
root / root
0644
cache.js
7.072 KB
7 Dec 2023 1.07 AM
root / root
0644
ci.js
3.509 KB
7 Dec 2023 1.07 AM
root / root
0644
completion.js
8.734 KB
7 Dec 2023 1.07 AM
root / root
0644
config.js
10.037 KB
7 Dec 2023 1.07 AM
root / root
0644
dedupe.js
1.396 KB
7 Dec 2023 1.07 AM
root / root
0644
deprecate.js
2.029 KB
7 Dec 2023 1.07 AM
root / root
0644
diff.js
8.123 KB
7 Dec 2023 1.07 AM
root / root
0644
dist-tag.js
5.451 KB
7 Dec 2023 1.07 AM
root / root
0644
docs.js
0.437 KB
7 Dec 2023 1.07 AM
root / root
0644
doctor.js
11.512 KB
7 Dec 2023 1.07 AM
root / root
0644
edit.js
1.997 KB
7 Dec 2023 1.07 AM
root / root
0644
exec.js
2.542 KB
7 Dec 2023 1.07 AM
root / root
0644
explain.js
3.554 KB
7 Dec 2023 1.07 AM
root / root
0644
explore.js
2.305 KB
7 Dec 2023 1.07 AM
root / root
0644
find-dupes.js
0.607 KB
7 Dec 2023 1.07 AM
root / root
0644
fund.js
6.513 KB
7 Dec 2023 1.07 AM
root / root
0644
get.js
0.512 KB
7 Dec 2023 1.07 AM
root / root
0644
help-search.js
5.494 KB
7 Dec 2023 1.07 AM
root / root
0644
help.js
3.535 KB
7 Dec 2023 1.07 AM
root / root
0644
hook.js
3.77 KB
7 Dec 2023 1.07 AM
root / root
0644
init.js
6.902 KB
7 Dec 2023 1.07 AM
root / root
0644
install-ci-test.js
0.364 KB
7 Dec 2023 1.07 AM
root / root
0644
install-test.js
0.361 KB
7 Dec 2023 1.07 AM
root / root
0644
install.js
5.108 KB
7 Dec 2023 1.07 AM
root / root
0644
link.js
5.154 KB
7 Dec 2023 1.07 AM
root / root
0644
ll.js
0.229 KB
7 Dec 2023 1.07 AM
root / root
0644
login.js
1.315 KB
7 Dec 2023 1.07 AM
root / root
0644
logout.js
1.305 KB
7 Dec 2023 1.07 AM
root / root
0644
ls.js
16.729 KB
7 Dec 2023 1.07 AM
root / root
0644
org.js
4.144 KB
7 Dec 2023 1.07 AM
root / root
0644
outdated.js
8.762 KB
7 Dec 2023 1.07 AM
root / root
0644
owner.js
5.906 KB
7 Dec 2023 1.07 AM
root / root
0644
pack.js
2.373 KB
7 Dec 2023 1.07 AM
root / root
0644
ping.js
0.896 KB
7 Dec 2023 1.07 AM
root / root
0644
pkg.js
3.499 KB
7 Dec 2023 1.07 AM
root / root
0644
prefix.js
0.296 KB
7 Dec 2023 1.07 AM
root / root
0644
profile.js
11.188 KB
7 Dec 2023 1.07 AM
root / root
0644
prune.js
0.761 KB
7 Dec 2023 1.07 AM
root / root
0644
publish.js
6.503 KB
7 Dec 2023 1.07 AM
root / root
0644
query.js
2.9 KB
7 Dec 2023 1.07 AM
root / root
0644
rebuild.js
2.141 KB
7 Dec 2023 1.07 AM
root / root
0644
repo.js
1.242 KB
7 Dec 2023 1.07 AM
root / root
0644
restart.js
0.303 KB
7 Dec 2023 1.07 AM
root / root
0644
root.js
0.252 KB
7 Dec 2023 1.07 AM
root / root
0644
run-script.js
6.814 KB
7 Dec 2023 1.07 AM
root / root
0644
search.js
2.677 KB
7 Dec 2023 1.07 AM
root / root
0644
set.js
0.559 KB
7 Dec 2023 1.07 AM
root / root
0644
shrinkwrap.js
2.642 KB
7 Dec 2023 1.07 AM
root / root
0644
star.js
1.866 KB
7 Dec 2023 1.07 AM
root / root
0644
stars.js
1.027 KB
7 Dec 2023 1.07 AM
root / root
0644
start.js
0.293 KB
7 Dec 2023 1.07 AM
root / root
0644
stop.js
0.288 KB
7 Dec 2023 1.07 AM
root / root
0644
team.js
4.438 KB
7 Dec 2023 1.07 AM
root / root
0644
test.js
0.288 KB
7 Dec 2023 1.07 AM
root / root
0644
token.js
6.642 KB
7 Dec 2023 1.07 AM
root / root
0644
uninstall.js
1.506 KB
7 Dec 2023 1.07 AM
root / root
0644
unpublish.js
4.544 KB
7 Dec 2023 1.07 AM
root / root
0644
unstar.js
0.178 KB
7 Dec 2023 1.07 AM
root / root
0644
update.js
1.709 KB
7 Dec 2023 1.07 AM
root / root
0644
version.js
3.576 KB
7 Dec 2023 1.07 AM
root / root
0644
view.js
14.375 KB
7 Dec 2023 1.07 AM
root / root
0644
whoami.js
0.463 KB
7 Dec 2023 1.07 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF