Current Path: > > lib > node_modules > npm > lib
Operation : Linux premium131.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 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
auth | Directory | - | - | |
config | Directory | - | - | |
doctor | Directory | - | - | |
install | Directory | - | - | |
search | Directory | - | - | |
utils | Directory | - | - | |
access.js | File | 5672 bytes | March 10 2021 14:36:36. | |
adduser.js | File | 1337 bytes | March 10 2021 14:36:36. | |
audit.js | File | 10811 bytes | March 10 2021 14:36:36. | |
bin.js | File | 515 bytes | March 10 2021 14:36:36. | |
bugs.js | File | 864 bytes | March 10 2021 14:36:35. | |
build.js | File | 4545 bytes | March 10 2021 14:36:36. | |
cache.js | File | 4773 bytes | March 10 2021 14:36:36. | |
ci.js | File | 1341 bytes | March 10 2021 14:36:36. | |
completion.js | File | 7278 bytes | March 10 2021 14:36:36. | |
config.js | File | 7612 bytes | March 10 2021 14:36:36. | |
dedupe.js | File | 4999 bytes | March 10 2021 14:36:35. | |
deprecate.js | File | 2157 bytes | March 10 2021 14:36:35. | |
dist-tag.js | File | 4204 bytes | March 10 2021 14:36:36. | |
docs.js | File | 1063 bytes | March 10 2021 14:36:36. | |
doctor.js | File | 4075 bytes | March 10 2021 14:36:35. | |
edit.js | File | 1407 bytes | March 10 2021 14:36:36. | |
explore.js | File | 1709 bytes | March 10 2021 14:36:36. | |
fetch-package-metadata.js | File | 4064 bytes | March 10 2021 14:36:36. | |
fetch-package-metadata.md | File | 1811 bytes | March 10 2021 14:36:36. | |
fund.js | File | 5026 bytes | March 10 2021 14:36:36. | |
get.js | File | 235 bytes | March 10 2021 14:36:36. | |
help-search.js | File | 5777 bytes | March 10 2021 14:36:36. | |
help.js | File | 6507 bytes | March 10 2021 14:36:36. | |
hook.js | File | 4727 bytes | March 10 2021 14:36:35. | |
init.js | File | 2805 bytes | March 10 2021 14:36:36. | |
install-ci-test.js | File | 486 bytes | March 10 2021 14:36:36. | |
install-test.js | File | 507 bytes | March 10 2021 14:36:36. | |
install.js | File | 37345 bytes | March 10 2021 14:36:36. | |
link.js | File | 5739 bytes | March 10 2021 14:36:36. | |
logout.js | File | 1289 bytes | March 10 2021 14:36:36. | |
ls.js | File | 16480 bytes | March 10 2021 14:36:36. | |
npm.js | File | 14719 bytes | March 10 2021 14:36:36. | |
org.js | File | 4276 bytes | March 10 2021 14:36:36. | |
outdated.js | File | 12572 bytes | March 10 2021 14:36:35. | |
owner.js | File | 6754 bytes | March 10 2021 14:36:36. | |
pack.js | File | 12068 bytes | March 10 2021 14:36:36. | |
ping.js | File | 1141 bytes | March 10 2021 14:36:36. | |
prefix.js | File | 330 bytes | March 10 2021 14:36:36. | |
profile.js | File | 11401 bytes | March 10 2021 14:36:36. | |
prune.js | File | 2281 bytes | March 10 2021 14:36:36. | |
publish.js | File | 5264 bytes | March 10 2021 14:36:36. | |
rebuild.js | File | 2143 bytes | March 10 2021 14:36:36. | |
repo.js | File | 1471 bytes | March 10 2021 14:36:35. | |
restart.js | File | 64 bytes | March 10 2021 14:36:36. | |
root.js | File | 320 bytes | March 10 2021 14:36:35. | |
run-script.js | File | 5540 bytes | March 10 2021 14:36:36. | |
search.js | File | 3442 bytes | March 10 2021 14:36:36. | |
set.js | File | 276 bytes | March 10 2021 14:36:36. | |
shrinkwrap.js | File | 10056 bytes | March 10 2021 14:36:36. | |
star.js | File | 2157 bytes | March 10 2021 14:36:36. | |
stars.js | File | 1054 bytes | March 10 2021 14:36:36. | |
start.js | File | 62 bytes | March 10 2021 14:36:36. | |
stop.js | File | 61 bytes | March 10 2021 14:36:36. | |
substack.js | File | 509 bytes | March 10 2021 14:36:36. | |
team.js | File | 4724 bytes | March 10 2021 14:36:36. | |
test.js | File | 374 bytes | March 10 2021 14:36:36. | |
token.js | File | 6818 bytes | March 10 2021 14:36:36. | |
unbuild.js | File | 4374 bytes | March 10 2021 14:36:36. | |
uninstall.js | File | 2261 bytes | March 10 2021 14:36:35. | |
unpublish.js | File | 3594 bytes | March 10 2021 14:36:36. | |
update.js | File | 2213 bytes | March 10 2021 14:36:36. | |
version.js | File | 10029 bytes | March 10 2021 14:36:36. | |
view.js | File | 15473 bytes | March 10 2021 14:36:36. | |
visnup.js | File | 4104 bytes | March 10 2021 14:36:35. | |
whoami.js | File | 1809 bytes | March 10 2021 14:36:36. | |
xmas.js | File | 1663 bytes | March 10 2021 14:36:35. |
'use strict' const BB = require('bluebird') const hookApi = require('libnpm/hook') const npmConfig = require('./config/figgy-config.js') const output = require('./utils/output.js') const otplease = require('./utils/otplease.js') const pudding = require('figgy-pudding') const relativeDate = require('tiny-relative-date') const Table = require('cli-table3') const validate = require('aproba') const npm = require('./npm') hook.usage = [ 'npm hook add <pkg> <url> <secret> [--type=<type>]', 'npm hook ls [pkg]', 'npm hook rm <id>', 'npm hook update <id> <url> <secret>' ].join('\n') hook.completion = (opts, cb) => { validate('OF', [opts, cb]) return cb(null, []) // fill in this array with completion values } const HookConfig = pudding({ json: {}, loglevel: {}, parseable: {}, silent: {}, unicode: {} }) function UsageError () { throw Object.assign(new Error(hook.usage), {code: 'EUSAGE'}) } module.exports = (args, cb) => BB.try(() => hook(args)).then( val => cb(null, val), err => err.code === 'EUSAGE' ? cb(err.message) : cb(err) ) function hook (args) { if (args.length === 4) { // secret is passed in the args // we have the user secret in the CLI args, we need to redact it from the referer. redactUserSecret() } return otplease(npmConfig(), opts => { opts = HookConfig(opts) switch (args[0]) { case 'add': return add(args[1], args[2], args[3], opts) case 'ls': return ls(args[1], opts) case 'rm': return rm(args[1], opts) case 'update': case 'up': return update(args[1], args[2], args[3], opts) default: UsageError() } }) } function add (pkg, uri, secret, opts) { return hookApi.add(pkg, uri, secret, opts).then(hook => { if (opts.json) { output(JSON.stringify(hook, null, 2)) } else if (opts.parseable) { output(Object.keys(hook).join('\t')) output(Object.keys(hook).map(k => hook[k]).join('\t')) } else if (!opts.silent && opts.loglevel !== 'silent') { output(`+ ${hookName(hook)} ${ opts.unicode ? ' ➜ ' : ' -> ' } ${hook.endpoint}`) } }) } function ls (pkg, opts) { return hookApi.ls(opts.concat({package: pkg})).then(hooks => { if (opts.json) { output(JSON.stringify(hooks, null, 2)) } else if (opts.parseable) { output(Object.keys(hooks[0]).join('\t')) hooks.forEach(hook => { output(Object.keys(hook).map(k => hook[k]).join('\t')) }) } else if (!hooks.length) { output("You don't have any hooks configured yet.") } else if (!opts.silent && opts.loglevel !== 'silent') { if (hooks.length === 1) { output('You have one hook configured.') } else { output(`You have ${hooks.length} hooks configured.`) } const table = new Table({head: ['id', 'target', 'endpoint']}) hooks.forEach((hook) => { table.push([ {rowSpan: 2, content: hook.id}, hookName(hook), hook.endpoint ]) if (hook.last_delivery) { table.push([ { colSpan: 1, content: `triggered ${relativeDate(hook.last_delivery)}` }, hook.response_code ]) } else { table.push([{colSpan: 2, content: 'never triggered'}]) } }) output(table.toString()) } }) } function rm (id, opts) { return hookApi.rm(id, opts).then(hook => { if (opts.json) { output(JSON.stringify(hook, null, 2)) } else if (opts.parseable) { output(Object.keys(hook).join('\t')) output(Object.keys(hook).map(k => hook[k]).join('\t')) } else if (!opts.silent && opts.loglevel !== 'silent') { output(`- ${hookName(hook)} ${ opts.unicode ? ' ✘ ' : ' X ' } ${hook.endpoint}`) } }) } function update (id, uri, secret, opts) { return hookApi.update(id, uri, secret, opts).then(hook => { if (opts.json) { output(JSON.stringify(hook, null, 2)) } else if (opts.parseable) { output(Object.keys(hook).join('\t')) output(Object.keys(hook).map(k => hook[k]).join('\t')) } else if (!opts.silent && opts.loglevel !== 'silent') { output(`+ ${hookName(hook)} ${ opts.unicode ? ' ➜ ' : ' -> ' } ${hook.endpoint}`) } }) } function hookName (hook) { let target = hook.name if (hook.type === 'scope') { target = '@' + target } if (hook.type === 'owner') { target = '~' + target } return target } function redactUserSecret () { const referer = npm.referer if (!referer) return const splittedReferer = referer.split(' ') splittedReferer[4] = '[REDACTED]' npm.referer = splittedReferer.join(' ') }
SILENT KILLER Tool