HEX
Server: Apache/2.4.61 (Ubuntu)
System: Linux hosting106 7.0.12-1-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.12-1 (2026-06-09T21:07Z) x86_64
User: clinicadentalargarate.com (1193)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/share/nodejs/@npmcli/arborist/bin/license.js
const Arborist = require('../')
const options = require('./lib/options.js')
require('./lib/logging.js')
require('./lib/timers.js')

const a = new Arborist(options)
const query = options._.shift()

a.loadVirtual().then(tree => {
  // only load the actual tree if the virtual one doesn't have modern metadata
  if (!tree.meta || !(tree.meta.originalLockfileVersion >= 2)) {
    throw 'load actual'
  } else {
    return tree
  }
}).catch((er) => {
  console.error('loading actual tree', er)
  return a.loadActual()
}).then(tree => {
  if (!query) {
    const set = []
    for (const license of tree.inventory.query('license')) {
      set.push([tree.inventory.query('license', license).size, license])
    }

    for (const [count, license] of set.sort((a, b) =>
      a[1] && b[1] ? b[0] - a[0] || a[1].localeCompare(b[1], 'en')
      : a[1] ? -1
      : b[1] ? 1
      : 0)) {
      console.log(count, license)
    }
  } else {
    for (const node of tree.inventory.query('license', query === 'undefined' ? undefined : query)) {
      console.log(`${node.name} ${node.location} ${node.package.description || ''}`)
    }
  }
})