| Software: Apache. PHP/5.3.29 uname -a: Linux tardis23.nocplanet.net 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 
 Safe-mode: OFF (not secure) /opt/alt/alt-nodejs14/root/usr/lib/node_modules/npm/node_modules.bundled/libcipm/lib/config/   drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict'
const BB = require('bluebird')
const fs = require('fs')
const figgyPudding = require('figgy-pudding')
const ini = require('ini')
const path = require('path')
const spawn = require('child_process').spawn
const readFileAsync = BB.promisify(fs.readFile)
const NpmConfig = figgyPudding({
  cache: { default: '' },
  then: {},
  userconfig: {}
})
module.exports = NpmConfig
module.exports.fromNpm = getNpmConfig
function getNpmConfig (argv) {
  return new BB((resolve, reject) => {
    const npmBin = process.platform === 'win32' ? 'npm.cmd' : 'npm'
    const child = spawn(npmBin, [
      'config', 'ls', '--json', '-l'
      // We add argv here to get npm to parse those options for us :D
    ].concat(argv || []), {
      env: process.env,
      cwd: process.cwd(),
      stdio: [0, 'pipe', 2]
    })
    let stdout = ''
    if (child.stdout) {
      child.stdout.on('data', (chunk) => {
        stdout += chunk
      })
    }
    child.on('error', reject)
    child.on('close', (code) => {
      if (code === 127) {
        reject(new Error('`npm` command not found. Please ensure you have npm@5.4.0 or later installed.'))
      } else {
        try {
          resolve(JSON.parse(stdout))
        } catch (e) {
          reject(new Error('`npm config ls --json` failed to output json. Please ensure you have npm@5.4.0 or later installed.'))
        }
      }
    })
  }).then(opts => {
    return BB.all(
      process.cwd().split(path.sep).reduce((acc, next) => {
        acc.path = path.join(acc.path, next)
        acc.promises.push(maybeReadIni(path.join(acc.path, '.npmrc')))
        acc.promises.push(maybeReadIni(path.join(acc.path, 'npmrc')))
        return acc
      }, {
        path: '',
        promises: []
      }).promises.concat(
        opts.userconfig ? maybeReadIni(opts.userconfig) : {}
      )
    ).then(configs => NpmConfig(...configs, opts))
  }).then(opts => {
    if (opts.cache) {
      return opts.concat({ cache: path.join(opts.cache, '_cacache') })
    } else {
      return opts
    }
  })
}
function maybeReadIni (f) {
  return readFileAsync(f, 'utf8').catch(err => {
    if (err.code === 'ENOENT') {
      return ''
    } else {
      throw err
    }
  }).then(ini.parse)
}
 | 
| :: Command execute :: | |
| --[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0297 ]-- |