X7ROOT File Manager
Current Path:
/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/lib
opt
/
alt
/
alt-nodejs8
/
root
/
usr
/
lib
/
node_modules
/
npm
/
lib
/
📁
..
📄
access.js
(5.53 KB)
📄
adduser.js
(1.31 KB)
📄
audit.js
(10.56 KB)
📁
auth
📄
bin.js
(515 B)
📄
bugs.js
(864 B)
📄
build.js
(4.44 KB)
📄
cache.js
(4.66 KB)
📄
ci.js
(1.17 KB)
📄
completion.js
(7.11 KB)
📁
config
📄
config.js
(7.43 KB)
📄
dedupe.js
(4.88 KB)
📄
deprecate.js
(2.11 KB)
📄
dist-tag.js
(4.11 KB)
📄
docs.js
(1.04 KB)
📁
doctor
📄
doctor.js
(3.98 KB)
📄
edit.js
(1.37 KB)
📄
explore.js
(1.69 KB)
📄
fetch-package-metadata.js
(3.84 KB)
📄
fetch-package-metadata.md
(1.77 KB)
📄
fund.js
(5.41 KB)
📄
get.js
(235 B)
📄
help-search.js
(5.64 KB)
📄
help.js
(6.35 KB)
📄
hook.js
(4.21 KB)
📄
init.js
(2.74 KB)
📁
install
📄
install-ci-test.js
(486 B)
📄
install-test.js
(507 B)
📄
install.js
(36.25 KB)
📄
link.js
(5.6 KB)
📄
logout.js
(1.26 KB)
📄
ls.js
(16.09 KB)
📄
npm.js
(13.97 KB)
📄
org.js
(4.18 KB)
📄
outdated.js
(12.28 KB)
📄
owner.js
(6.6 KB)
📄
pack.js
(11.79 KB)
📄
ping.js
(1.11 KB)
📄
prefix.js
(330 B)
📄
profile.js
(11.13 KB)
📄
prune.js
(2.23 KB)
📄
publish.js
(5.14 KB)
📄
rebuild.js
(2.09 KB)
📄
repo.js
(1.44 KB)
📄
restart.js
(64 B)
📄
root.js
(320 B)
📄
run-script.js
(5.41 KB)
📁
search
📄
search.js
(3.36 KB)
📄
set.js
(276 B)
📄
shrinkwrap.js
(9.82 KB)
📄
star.js
(2.11 KB)
📄
stars.js
(1.03 KB)
📄
start.js
(62 B)
📄
stop.js
(61 B)
📄
substack.js
(509 B)
📄
team.js
(4.54 KB)
📄
test.js
(374 B)
📄
token.js
(6.66 KB)
📄
unbuild.js
(4.27 KB)
📄
uninstall.js
(2.21 KB)
📄
unpublish.js
(3.44 KB)
📄
update.js
(2.16 KB)
📁
utils
📄
version.js
(9.54 KB)
📄
view.js
(15.11 KB)
📄
visnup.js
(4.01 KB)
📄
whoami.js
(1.77 KB)
📄
xmas.js
(1.62 KB)
Editing: 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, validFundingUrl } = require('./utils/funding.js') const FundConfig = figgyPudding({ browser: {}, // used by ./utils/open-url global: {}, json: {}, unicode: {} }) module.exports = fundCmd const usage = require('./utils/usage') fundCmd.usage = usage( 'fund', 'npm fund [--json]', 'npm fund [--browser] [[<@scope>/]<pkg>' ) 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) { // mapping logic that keeps track of seen items in order to be able // to push all other items from the same type/url in the same place const seen = new Map() function seenKey ({ type, url } = {}) { return url ? String(type) + String(url) : null } function setStackedItem (funding, result) { const key = seenKey(funding) if (key && !seen.has(key)) seen.set(key, result) } function retrieveStackedItem (funding) { const key = seenKey(funding) if (key && seen.has(key)) return seen.get(key) } // --- const getFundingItems = (fundingItems) => Object.keys(fundingItems || {}).map((fundingItemName) => { // first-level loop, prepare the pretty-printed formatted data const fundingItem = fundingItems[fundingItemName] const { version, funding } = fundingItem const { type, url } = funding || {} const printableVersion = version ? `@${version}` : '' const printableType = type && { label: `type: ${funding.type}` } const printableUrl = url && { label: `url: ${funding.url}` } const result = { fundingItem, label: fundingItemName + printableVersion, nodes: [] } if (printableType) { result.nodes.push(printableType) } if (printableUrl) { result.nodes.push(printableUrl) } setStackedItem(funding, result) return result }).reduce((res, result) => { // recurse and exclude nodes that are going to be stacked together const { fundingItem } = result const { dependencies, funding } = fundingItem const items = getFundingItems(dependencies) const stackedResult = retrieveStackedItem(funding) items.forEach(i => result.nodes.push(i)) if (stackedResult && stackedResult !== result) { stackedResult.label += `, ${result.label}` items.forEach(i => stackedResult.nodes.push(i)) return res } res.push(result) return res }, []) const [ result ] = getFundingItems({ [fundingInfo.name]: { dependencies: fundingInfo.dependencies, funding: fundingInfo.funding, version: fundingInfo.version } }) return archy(result, '', { unicode: opts.unicode }) } function openFundingUrl (packageName, cb) { function getUrlAndOpen (packageMetadata) { const { funding } = packageMetadata const { type, url } = retrieveFunding(funding) || {} const noFundingError = new Error(`No funding method available for: ${packageName}`) noFundingError.code = 'ENOFUND' const typePrefix = type ? `${type} funding` : 'Funding' const msg = `${typePrefix} available at the following URL` if (validFundingUrl(funding)) { openUrl(url, msg, cb) } else { 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] if (opts.global) { const err = new Error('`npm fund` does not support globals') err.code = 'EFUNDGLOBAL' throw err } if (packageName) { openFundingUrl(packageName, 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) }) }) }
Upload File
Create Folder