\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /opt/alt/alt-nodejs16/root/lib/node_modules/npm/node_modules.bundled/@npmcli/arborist/bin/

Viewing File: index.js

#!/opt/alt/alt-nodejs16/root/usr/bin/node

const fs = require('fs')
const path = require('path')

const { bin, arb: options } = require('./lib/options')
const version = require('../package.json').version

const usage = (message = '') => `Arborist - the npm tree doctor

Version: ${version}
${message && '\n' + message + '\n'}
# USAGE
  arborist <cmd> [path] [options...]

# COMMANDS

  * reify: reify ideal tree to node_modules (install, update, rm, ...)
  * prune: prune the ideal tree and reify (like npm prune)
  * ideal: generate and print the ideal tree
  * actual: read and print the actual tree in node_modules
  * virtual: read and print the virtual tree in the local shrinkwrap file
  * shrinkwrap: load a local shrinkwrap and print its data
  * audit: perform a security audit on project dependencies
  * funding: query funding information in the local package tree.  A second
    positional argument after the path name can limit to a package name.
  * license: query license information in the local package tree.  A second
    positional argument after the path name can limit to a license type.
  * help: print this text
  * version: print the version

# OPTIONS

  Most npm options are supported, but in camelCase rather than css-case.  For
  example, instead of '--dry-run', use '--dryRun'.

  Additionally:

  * --loglevel=warn|--quiet will supppress the printing of package trees
  * --logfile <file|bool> will output logs to a file
  * --timing will show timing information
  * Instead of 'npm install <pkg>', use 'arborist reify --add=<pkg>'.
    The '--add=<pkg>' option can be specified multiple times.
  * Instead of 'npm rm <pkg>', use 'arborist reify --rm=<pkg>'.
    The '--rm=<pkg>' option can be specified multiple times.
  * Instead of 'npm update', use 'arborist reify --update-all'.
  * 'npm audit fix' is 'arborist audit --fix'
`

const commands = {
  version: () => console.log(version),
  help: () => console.log(usage()),
  exit: () => {
    process.exitCode = 1
    console.error(
      usage(`Error: command '${bin.command}' does not exist.`)
    )
  },
}

const commandFiles = fs.readdirSync(__dirname).filter((f) => path.extname(f) === '.js' && f !== __filename)

for (const file of commandFiles) {
  const command = require(`./${file}`)
  const name = path.basename(file, '.js')
  const totalTime = `bin:${name}:init`
  const scriptTime = `bin:${name}:script`

  commands[name] = () => {
    const timers = require('./lib/timers')
    const log = require('./lib/logging')

    log.info(name, options)

    process.emit('time', totalTime)
    process.emit('time', scriptTime)

    return command(options, (result) => {
      process.emit('timeEnd', scriptTime)
      return {
        result,
        timing: {
          seconds: `${timers.get(scriptTime) / 1e9}s`,
          ms: `${timers.get(scriptTime) / 1e6}ms`,
        },
      }
    })
      .then((result) => {
        log.info(result)
        return result
      })
      .catch((err) => {
        process.exitCode = 1
        log.error(err)
        return err
      })
      .then((r) => {
        process.emit('timeEnd', totalTime)
        if (bin.loglevel !== 'silent') {
          console[process.exitCode ? 'error' : 'log'](r)
        }
        return r
      })
  }
}

if (commands[bin.command]) {
  commands[bin.command]()
} else {
  commands.exit()
}