%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
#!/usr/bin/env node const run = conf => { const pacote = require('../') switch (conf._[0]) { case 'resolve': case 'manifest': case 'packument': if (conf._[0] === 'resolve' && conf.long) { return pacote.manifest(conf._[1], conf).then(mani => ({ resolved: mani._resolved, integrity: mani._integrity, from: mani._from, })) } return pacote[conf._[0]](conf._[1], conf) case 'tarball': if (!conf._[2] || conf._[2] === '-') { return pacote.tarball.stream(conf._[1], stream => { stream.pipe( conf.testStdout || /* istanbul ignore next */ process.stdout ) // make sure it resolves something falsey return stream.promise().then(() => { return false }) }, conf) } else { return pacote.tarball.file(conf._[1], conf._[2], conf) } case 'extract': return pacote.extract(conf._[1], conf._[2], conf) default: /* istanbul ignore next */ { throw new Error(`bad command: ${conf._[0]}`) } } } const version = require('../package.json').version const usage = () => `Pacote - The JavaScript Package Handler, v${version} Usage: pacote resolve <spec> Resolve a specifier and output the fully resolved target Returns integrity and from if '--long' flag is set. pacote manifest <spec> Fetch a manifest and print to stdout pacote packument <spec> Fetch a full packument and print to stdout pacote tarball <spec> [<filename>] Fetch a package tarball and save to <filename> If <filename> is missing or '-', the tarball will be streamed to stdout. pacote extract <spec> <folder> Extract a package to the destination folder. Configuration values all match the names of configs passed to npm, or options passed to Pacote. Additional flags for this executable: --long Print an object from 'resolve', including integrity and spec. --json Print result objects as JSON rather than node's default. (This is the default if stdout is not a TTY.) --help -h Print this helpful text. For example '--cache=/path/to/folder' will use that folder as the cache. ` const shouldJSON = (conf, result) => conf.json || !process.stdout.isTTY && conf.json === undefined && result && typeof result === 'object' const pretty = (conf, result) => shouldJSON(conf, result) ? JSON.stringify(result, 0, 2) : result let addedLogListener = false const main = args => { const conf = parse(args) if (conf.help || conf.h) { return console.log(usage()) } if (!addedLogListener) { process.on('log', console.error) addedLogListener = true } try { return run(conf) .then(result => result && console.log(pretty(conf, result))) .catch(er => { console.error(er) process.exit(1) }) } catch (er) { console.error(er.message) console.error(usage()) } } const parseArg = arg => { const split = arg.slice(2).split('=') const k = split.shift() const v = split.join('=') const no = /^no-/.test(k) && !v const key = (no ? k.slice(3) : k) .replace(/^tag$/, 'defaultTag') .replace(/-([a-z])/g, (_, c) => c.toUpperCase()) const value = v ? v.replace(/^~/, process.env.HOME) : !no return { key, value } } const parse = args => { const conf = { _: [], cache: process.env.HOME + '/.npm/_cacache', } let dashdash = false args.forEach(arg => { if (dashdash) { conf._.push(arg) } else if (arg === '--') { dashdash = true } else if (arg === '-h') { conf.help = true } else if (/^--/.test(arg)) { const { key, value } = parseArg(arg) conf[key] = value } else { conf._.push(arg) } }) return conf } if (module === require.main) { main(process.argv.slice(2)) } else { module.exports = { main, run, usage, parseArg, parse, } }