Linux vmi2545633.contaboserver.net 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64
Apache/2.4.62 (Debian)
Server IP : 127.0.0.1 & Your IP : 127.0.0.1
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
node_modules /
npm /
lib /
commands /
Delete
Unzip
Name
Size
Permission
Date
Action
access.js
6.03
KB
-rw-r--r--
2023-08-09 13:29
adduser.js
1.32
KB
-rw-r--r--
2024-04-10 09:40
audit.js
15.11
KB
-rw-r--r--
2023-11-05 06:00
bugs.js
847
B
-rw-r--r--
2023-10-24 06:00
cache.js
7
KB
-rw-r--r--
2023-08-09 13:29
ci.js
3.77
KB
-rw-r--r--
2024-04-10 09:40
completion.js
8.87
KB
-rw-r--r--
2023-08-09 13:29
config.js
10.11
KB
-rw-r--r--
2023-08-09 13:29
dedupe.js
1.41
KB
-rw-r--r--
2023-10-24 06:00
deprecate.js
2.03
KB
-rw-r--r--
2023-10-24 06:00
diff.js
8.15
KB
-rw-r--r--
2023-08-09 13:29
dist-tag.js
5.52
KB
-rw-r--r--
2024-03-03 10:00
docs.js
447
B
-rw-r--r--
2022-10-11 10:59
doctor.js
11.8
KB
-rw-r--r--
2023-10-24 06:00
edit.js
2
KB
-rw-r--r--
2023-08-09 13:29
exec.js
3.12
KB
-rw-r--r--
2023-11-30 06:00
explain.js
3.57
KB
-rw-r--r--
2023-08-09 13:29
explore.js
2.31
KB
-rw-r--r--
2023-08-09 13:29
find-dupes.js
637
B
-rw-r--r--
2023-10-24 06:00
fund.js
6.54
KB
-rw-r--r--
2023-08-09 13:29
get.js
580
B
-rw-r--r--
2023-08-09 13:29
help-search.js
5.5
KB
-rw-r--r--
2023-06-20 17:20
help.js
3.58
KB
-rw-r--r--
2023-08-09 13:29
hook.js
3.77
KB
-rw-r--r--
2023-01-17 06:00
init.js
6.95
KB
-rw-r--r--
2023-10-24 06:00
install-ci-test.js
373
B
-rw-r--r--
2023-01-17 06:00
install-test.js
370
B
-rw-r--r--
2023-01-17 06:00
install.js
5.27
KB
-rw-r--r--
2024-02-19 06:00
link.js
5.34
KB
-rw-r--r--
2023-11-05 06:00
ll.js
234
B
-rw-r--r--
2022-10-11 10:59
login.js
1.32
KB
-rw-r--r--
2024-04-10 09:40
logout.js
1.43
KB
-rw-r--r--
2023-11-05 06:00
ls.js
16.76
KB
-rw-r--r--
2023-10-24 06:00
org.js
4.15
KB
-rw-r--r--
2023-08-09 13:29
outdated.js
8.8
KB
-rw-r--r--
2024-03-03 10:00
owner.js
5.82
KB
-rw-r--r--
2023-08-09 13:29
pack.js
2.52
KB
-rw-r--r--
2024-03-03 10:00
ping.js
917
B
-rw-r--r--
2023-01-17 06:00
pkg.js
3.56
KB
-rw-r--r--
2023-11-30 06:00
prefix.js
303
B
-rw-r--r--
2023-01-17 06:00
profile.js
11.19
KB
-rw-r--r--
2023-08-09 13:29
prune.js
798
B
-rw-r--r--
2023-10-24 06:00
publish.js
6.91
KB
-rw-r--r--
2024-04-10 09:40
query.js
3.48
KB
-rw-r--r--
2024-04-10 09:40
rebuild.js
2.16
KB
-rw-r--r--
2023-08-09 13:29
repo.js
1.24
KB
-rw-r--r--
2022-10-11 10:59
restart.js
310
B
-rw-r--r--
2023-01-17 06:00
root.js
258
B
-rw-r--r--
2023-01-17 06:00
run-script.js
6.41
KB
-rw-r--r--
2023-10-14 10:00
sbom.js
4.66
KB
-rw-r--r--
2023-10-24 06:00
search.js
2.75
KB
-rw-r--r--
2024-04-10 09:40
set.js
674
B
-rw-r--r--
2023-08-09 13:29
shrinkwrap.js
2.65
KB
-rw-r--r--
2023-06-20 17:20
star.js
1.87
KB
-rw-r--r--
2022-10-11 10:59
stars.js
1.03
KB
-rw-r--r--
2022-10-11 10:59
start.js
300
B
-rw-r--r--
2023-01-17 06:00
stop.js
295
B
-rw-r--r--
2023-01-17 06:00
team.js
4.45
KB
-rw-r--r--
2023-08-09 13:29
test.js
295
B
-rw-r--r--
2023-01-17 06:00
token.js
6.67
KB
-rw-r--r--
2023-11-30 06:00
uninstall.js
1.53
KB
-rw-r--r--
2023-08-09 13:29
unpublish.js
4.96
KB
-rw-r--r--
2024-02-19 06:00
unstar.js
182
B
-rw-r--r--
2022-10-11 10:59
update.js
1.74
KB
-rw-r--r--
2023-10-24 06:00
version.js
3.58
KB
-rw-r--r--
2023-08-09 13:29
view.js
14.54
KB
-rw-r--r--
2024-03-03 10:00
whoami.js
474
B
-rw-r--r--
2023-01-17 06:00
Save
Rename
const archy = require('archy') const pacote = require('pacote') const semver = require('semver') const npa = require('npm-package-arg') const { depth } = require('treeverse') const { readTree: getFundingInfo, normalizeFunding, isValidFunding } = require('libnpmfund') const openUrl = require('../utils/open-url.js') const ArboristWorkspaceCmd = require('../arborist-cmd.js') const getPrintableName = ({ name, version }) => { const printableVersion = version ? `@${version}` : '' return `${name}${printableVersion}` } const errCode = (msg, code) => Object.assign(new Error(msg), { code }) class Fund extends ArboristWorkspaceCmd { static description = 'Retrieve funding information' static name = 'fund' static params = ['json', 'browser', 'unicode', 'workspace', 'which'] static usage = ['[<package-spec>]'] // XXX: maybe worth making this generic for all commands? usageMessage (paramsObj = {}) { let msg = `\`npm ${this.constructor.name}` const params = Object.entries(paramsObj) if (params.length) { msg += ` ${this.constructor.usage}` } for (const [key, value] of params) { msg += ` --${key}=${value}` } return `${msg}\`` } // TODO /* istanbul ignore next */ static async completion (opts, npm) { const completion = require('../utils/completion/installed-deep.js') return completion(npm, opts) } async exec (args) { const spec = args[0] let fundingSourceNumber = this.npm.config.get('which') if (fundingSourceNumber != null) { fundingSourceNumber = parseInt(fundingSourceNumber, 10) if (isNaN(fundingSourceNumber) || fundingSourceNumber < 1) { throw errCode( `${this.usageMessage({ which: 'fundingSourceNumber' })} must be given a positive integer`, 'EFUNDNUMBER' ) } } if (this.npm.global) { throw errCode( `${this.usageMessage()} does not support global packages`, 'EFUNDGLOBAL' ) } const where = this.npm.prefix const Arborist = require('@npmcli/arborist') const arb = new Arborist({ ...this.npm.flatOptions, path: where }) const tree = await arb.loadActual() if (spec) { await this.openFundingUrl({ path: where, tree, spec, fundingSourceNumber, }) return } // TODO: add !workspacesEnabled option handling to libnpmfund const fundingInfo = getFundingInfo(tree, { ...this.flatOptions, Arborist, workspaces: this.workspaceNames, }) if (this.npm.config.get('json')) { this.npm.output(this.printJSON(fundingInfo)) } else { this.npm.output(this.printHuman(fundingInfo)) } } printJSON (fundingInfo) { return JSON.stringify(fundingInfo, null, 2) } printHuman (fundingInfo) { const unicode = this.npm.config.get('unicode') const seenUrls = new Map() const tree = obj => archy(obj, '', { unicode }) const result = depth({ tree: fundingInfo, // composes human readable package name // and creates a new archy item for readable output visit: ({ name, version, funding }) => { const [fundingSource] = [].concat(normalizeFunding(funding)).filter(isValidFunding) const { url } = fundingSource || {} const pkgRef = getPrintableName({ name, version }) let item = { label: pkgRef, } if (url) { item.label = tree({ label: this.npm.chalk.bgBlack.white(url), nodes: [pkgRef], }).trim() // stacks all packages together under the same item if (seenUrls.has(url)) { item = seenUrls.get(url) item.label += `, ${pkgRef}` return null } else { seenUrls.set(url, item) } } return item }, // puts child nodes back into returned archy // output while also filtering out missing items leave: (item, children) => { if (item) { item.nodes = children.filter(Boolean) } return item }, // turns tree-like object return by libnpmfund // into children to be properly read by treeverse getChildren: node => Object.keys(node.dependencies || {}).map(key => ({ name: key, ...node.dependencies[key], })), }) const res = tree(result) return this.npm.chalk.reset(res) } async openFundingUrl ({ path, tree, spec, fundingSourceNumber }) { const arg = npa(spec, path) const retrievePackageMetadata = () => { if (arg.type === 'directory') { if (tree.path === arg.fetchSpec) { // matches cwd, e.g: npm fund . return tree.package } else { // matches any file path within current arborist inventory for (const item of tree.inventory.values()) { if (item.path === arg.fetchSpec) { return item.package } } } } else { // tries to retrieve a package from arborist inventory // by matching resulted package name from the provided spec const [item] = [...tree.inventory.query('name', arg.name)] .filter(i => semver.valid(i.package.version)) .sort((a, b) => semver.rcompare(a.package.version, b.package.version)) if (item) { return item.package } } } const { funding } = retrievePackageMetadata() || (await pacote.manifest(arg, this.npm.flatOptions).catch(() => ({}))) const validSources = [].concat(normalizeFunding(funding)).filter(isValidFunding) if (!validSources.length) { throw errCode(`No valid funding method available for: ${spec}`, 'ENOFUND') } const fundSource = fundingSourceNumber ? validSources[fundingSourceNumber - 1] : validSources.length === 1 ? validSources[0] : null if (fundSource) { return openUrl(this.npm, ...this.urlMessage(fundSource)) } const ambiguousUrlMsg = [ ...validSources.map((s, i) => `${i + 1}: ${this.urlMessage(s).reverse().join(': ')}`), `Run ${this.usageMessage({ which: '1' })}` + ', for example, to open the first funding URL listed in that package', ] if (fundingSourceNumber) { ambiguousUrlMsg.unshift(`--which=${fundingSourceNumber} is not a valid index`) } this.npm.output(ambiguousUrlMsg.join('\n')) } urlMessage (source) { const { type, url } = source const typePrefix = type ? `${type} funding` : 'Funding' const message = `${typePrefix} available at the following URL` return [url, message] } } module.exports = Fund