GRAYBYTE WORDPRESS FILE MANAGER3612

Server IP : 198.54.121.189 / Your IP : 216.73.216.34
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//fund.js
'use strict'

const path = require('path')

const archy = require('archy')
const figgyPudding = require('figgy-pudding')
const readPackageTree = require('read-package-tree')

const npm = require('./npm.js')
const npmConfig = require('./config/figgy-config.js')
const fetchPackageMetadata = require('./fetch-package-metadata.js')
const computeMetadata = require('./install/deps.js').computeMetadata
const readShrinkwrap = require('./install/read-shrinkwrap.js')
const mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js')
const output = require('./utils/output.js')
const openUrl = require('./utils/open-url.js')
const { getFundingInfo, retrieveFunding, validFundingField, flatCacheSymbol } = require('./utils/funding.js')

const FundConfig = figgyPudding({
  browser: {}, // used by ./utils/open-url
  global: {},
  json: {},
  unicode: {},
  which: {}
})

module.exports = fundCmd

const usage = require('./utils/usage')
fundCmd.usage = usage(
  'fund',
  'npm fund [--json]',
  'npm fund [--browser] [[<@scope>/]<pkg> [--which=<fundingSourceNumber>]'
)

fundCmd.completion = function (opts, cb) {
  const argv = opts.conf.argv.remain
  switch (argv[2]) {
    case 'fund':
      return cb(null, [])
    default:
      return cb(new Error(argv[2] + ' not recognized'))
  }
}

function printJSON (fundingInfo) {
  return JSON.stringify(fundingInfo, null, 2)
}

// the human-printable version does some special things that turned out to
// be very verbose but hopefully not hard to follow: we stack up items
// that have a shared url/type and make sure they're printed at the highest
// level possible, in that process they also carry their dependencies along
// with them, moving those up in the visual tree
function printHuman (fundingInfo, opts) {
  const flatCache = fundingInfo[flatCacheSymbol]

  const { name, version } = fundingInfo
  const printableVersion = version ? `@${version}` : ''

  const items = Object.keys(flatCache).map((url) => {
    const deps = flatCache[url]

    const packages = deps.map((dep) => {
      const { name, version } = dep

      const printableVersion = version ? `@${version}` : ''
      return `${name}${printableVersion}`
    })

    return {
      label: url,
      nodes: [packages.join(', ')]
    }
  })

  return archy({ label: `${name}${printableVersion}`, nodes: items }, '', { unicode: opts.unicode })
}

function openFundingUrl (packageName, fundingSourceNumber, cb) {
  function getUrlAndOpen (packageMetadata) {
    const { funding } = packageMetadata
    const validSources = [].concat(retrieveFunding(funding)).filter(validFundingField)

    if (validSources.length === 1 || (fundingSourceNumber > 0 && fundingSourceNumber <= validSources.length)) {
      const { type, url } = validSources[fundingSourceNumber ? fundingSourceNumber - 1 : 0]
      const typePrefix = type ? `${type} funding` : 'Funding'
      const msg = `${typePrefix} available at the following URL`
      openUrl(url, msg, cb)
    } else if (!(fundingSourceNumber >= 1)) {
      validSources.forEach(({ type, url }, i) => {
        const typePrefix = type ? `${type} funding` : 'Funding'
        const msg = `${typePrefix} available at the following URL`
        console.log(`${i + 1}: ${msg}: ${url}`)
      })
      console.log('Run `npm fund [<@scope>/]<pkg> --which=1`, for example, to open the first funding URL listed in that package')
      cb()
    } else {
      const noFundingError = new Error(`No valid funding method available for: ${packageName}`)
      noFundingError.code = 'ENOFUND'

      throw noFundingError
    }
  }

  fetchPackageMetadata(
    packageName,
    '.',
    { fullMetadata: true },
    function (err, packageMetadata) {
      if (err) return cb(err)
      getUrlAndOpen(packageMetadata)
    }
  )
}

function fundCmd (args, cb) {
  const opts = FundConfig(npmConfig())
  const dir = path.resolve(npm.dir, '..')
  const packageName = args[0]
  const numberArg = opts.which

  const fundingSourceNumber = numberArg && parseInt(numberArg, 10)

  if (numberArg !== undefined && (String(fundingSourceNumber) !== numberArg || fundingSourceNumber < 1)) {
    const err = new Error('`npm fund [<@scope>/]<pkg> [--which=fundingSourceNumber]` must be given a positive integer')
    err.code = 'EFUNDNUMBER'
    throw err
  }

  if (opts.global) {
    const err = new Error('`npm fund` does not support global packages')
    err.code = 'EFUNDGLOBAL'
    throw err
  }

  if (packageName) {
    openFundingUrl(packageName, fundingSourceNumber, cb)
    return
  }

  readPackageTree(dir, function (err, tree) {
    if (err) {
      process.exitCode = 1
      return cb(err)
    }

    readShrinkwrap.andInflate(tree, function () {
      const fundingInfo = getFundingInfo(
        mutateIntoLogicalTree.asReadInstalled(
          computeMetadata(tree)
        )
      )

      const print = opts.json
        ? printJSON
        : printHuman

      output(
        print(
          fundingInfo,
          opts
        )
      )
      cb(err, tree)
    })
  })
}

[ 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