$62 GRAYBYTE WORDPRESS FILE MANAGER $43

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/alt-nodejs20/root/usr/lib/node_modules/npm/lib/commands/

HOME
Current File : /opt/alt/alt-nodejs20/root/usr/lib/node_modules/npm/lib/commands//pkg.js
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

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
12 Sep 2025 9.24 PM
root / root
0755
access.js
6.044 KB
28 Aug 2025 8.06 PM
root / root
0644
adduser.js
1.29 KB
28 Aug 2025 8.06 PM
root / root
0644
audit.js
3.146 KB
28 Aug 2025 8.06 PM
root / root
0644
bugs.js
0.827 KB
28 Aug 2025 8.06 PM
root / root
0644
cache.js
7.121 KB
28 Aug 2025 8.06 PM
root / root
0644
ci.js
4.224 KB
28 Aug 2025 8.06 PM
root / root
0644
completion.js
8.902 KB
28 Aug 2025 8.06 PM
root / root
0644
config.js
11.176 KB
28 Aug 2025 8.06 PM
root / root
0644
dedupe.js
1.409 KB
28 Aug 2025 8.06 PM
root / root
0644
deprecate.js
2.131 KB
28 Aug 2025 8.06 PM
root / root
0644
diff.js
8.143 KB
28 Aug 2025 8.06 PM
root / root
0644
dist-tag.js
5.521 KB
28 Aug 2025 8.06 PM
root / root
0644
docs.js
0.438 KB
28 Aug 2025 8.06 PM
root / root
0644
doctor.js
10.104 KB
28 Aug 2025 8.06 PM
root / root
0644
edit.js
1.762 KB
28 Aug 2025 8.06 PM
root / root
0644
exec.js
3.418 KB
28 Aug 2025 8.06 PM
root / root
0644
explain.js
3.575 KB
28 Aug 2025 8.06 PM
root / root
0644
explore.js
2.159 KB
28 Aug 2025 8.06 PM
root / root
0644
find-dupes.js
0.619 KB
28 Aug 2025 8.06 PM
root / root
0644
fund.js
6.455 KB
28 Aug 2025 8.06 PM
root / root
0644
get.js
0.563 KB
28 Aug 2025 8.06 PM
root / root
0644
help-search.js
5.518 KB
28 Aug 2025 8.06 PM
root / root
0644
help.js
3.664 KB
28 Aug 2025 8.06 PM
root / root
0644
hook.js
3.372 KB
28 Aug 2025 8.06 PM
root / root
0644
init.js
6.847 KB
28 Aug 2025 8.06 PM
root / root
0644
install-ci-test.js
0.364 KB
28 Aug 2025 8.06 PM
root / root
0644
install-test.js
0.361 KB
28 Aug 2025 8.06 PM
root / root
0644
install.js
5.153 KB
28 Aug 2025 8.06 PM
root / root
0644
link.js
5.296 KB
28 Aug 2025 8.06 PM
root / root
0644
ll.js
0.229 KB
28 Aug 2025 8.06 PM
root / root
0644
login.js
1.287 KB
28 Aug 2025 8.06 PM
root / root
0644
logout.js
1.419 KB
28 Aug 2025 8.06 PM
root / root
0644
ls.js
16.811 KB
28 Aug 2025 8.06 PM
root / root
0644
org.js
4.024 KB
28 Aug 2025 8.06 PM
root / root
0644
outdated.js
7.695 KB
28 Aug 2025 8.06 PM
root / root
0644
owner.js
5.848 KB
28 Aug 2025 8.06 PM
root / root
0644
pack.js
2.603 KB
28 Aug 2025 8.06 PM
root / root
0644
ping.js
0.853 KB
28 Aug 2025 8.06 PM
root / root
0644
pkg.js
3.556 KB
28 Aug 2025 8.06 PM
root / root
0644
prefix.js
0.327 KB
28 Aug 2025 8.06 PM
root / root
0644
profile.js
10.565 KB
28 Aug 2025 8.06 PM
root / root
0644
prune.js
0.78 KB
28 Aug 2025 8.06 PM
root / root
0644
publish.js
7.186 KB
28 Aug 2025 8.06 PM
root / root
0644
query.js
3.511 KB
28 Aug 2025 8.06 PM
root / root
0644
rebuild.js
2.188 KB
28 Aug 2025 8.06 PM
root / root
0644
repo.js
1.248 KB
28 Aug 2025 8.06 PM
root / root
0644
restart.js
0.303 KB
28 Aug 2025 8.06 PM
root / root
0644
root.js
0.288 KB
28 Aug 2025 8.06 PM
root / root
0644
run-script.js
6.04 KB
28 Aug 2025 8.06 PM
root / root
0644
sbom.js
4.508 KB
28 Aug 2025 8.06 PM
root / root
0644
search.js
1.833 KB
28 Aug 2025 8.06 PM
root / root
0644
set.js
0.655 KB
28 Aug 2025 8.06 PM
root / root
0644
shrinkwrap.js
2.648 KB
28 Aug 2025 8.06 PM
root / root
0644
star.js
1.866 KB
28 Aug 2025 8.06 PM
root / root
0644
stars.js
1.027 KB
28 Aug 2025 8.06 PM
root / root
0644
start.js
0.293 KB
28 Aug 2025 8.06 PM
root / root
0644
stop.js
0.288 KB
28 Aug 2025 8.06 PM
root / root
0644
team.js
4.356 KB
28 Aug 2025 8.06 PM
root / root
0644
test.js
0.288 KB
28 Aug 2025 8.06 PM
root / root
0644
token.js
6.016 KB
28 Aug 2025 8.06 PM
root / root
0644
uninstall.js
1.524 KB
28 Aug 2025 8.06 PM
root / root
0644
unpublish.js
5.268 KB
28 Aug 2025 8.06 PM
root / root
0644
unstar.js
0.179 KB
28 Aug 2025 8.06 PM
root / root
0644
update.js
1.724 KB
28 Aug 2025 8.06 PM
root / root
0644
version.js
3.543 KB
28 Aug 2025 8.06 PM
root / root
0644
view.js
12.799 KB
28 Aug 2025 8.06 PM
root / root
0644
whoami.js
0.515 KB
28 Aug 2025 8.06 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF