X7ROOT File Manager
Current Path:
/opt/alt/alt-nodejs18/root/usr/lib/node_modules/npm/lib/commands
opt
/
alt
/
alt-nodejs18
/
root
/
usr
/
lib
/
node_modules
/
npm
/
lib
/
commands
/
??
..
??
access.js
(6.04 KB)
??
adduser.js
(1.29 KB)
??
audit.js
(3.15 KB)
??
bugs.js
(847 B)
??
cache.js
(7.12 KB)
??
ci.js
(4.22 KB)
??
completion.js
(8.9 KB)
??
config.js
(11.18 KB)
??
dedupe.js
(1.41 KB)
??
deprecate.js
(2.13 KB)
??
diff.js
(8.14 KB)
??
dist-tag.js
(5.52 KB)
??
docs.js
(449 B)
??
doctor.js
(10.1 KB)
??
edit.js
(1.76 KB)
??
exec.js
(3.42 KB)
??
explain.js
(3.58 KB)
??
explore.js
(2.16 KB)
??
find-dupes.js
(634 B)
??
fund.js
(6.46 KB)
??
get.js
(577 B)
??
help-search.js
(5.52 KB)
??
help.js
(3.66 KB)
??
hook.js
(3.37 KB)
??
init.js
(6.85 KB)
??
install-ci-test.js
(373 B)
??
install-test.js
(370 B)
??
install.js
(5.15 KB)
??
link.js
(5.3 KB)
??
ll.js
(234 B)
??
login.js
(1.29 KB)
??
logout.js
(1.42 KB)
??
ls.js
(16.81 KB)
??
org.js
(4.02 KB)
??
outdated.js
(7.7 KB)
??
owner.js
(5.85 KB)
??
pack.js
(2.6 KB)
??
ping.js
(873 B)
??
pkg.js
(3.56 KB)
??
prefix.js
(335 B)
??
profile.js
(10.57 KB)
??
prune.js
(799 B)
??
publish.js
(7.19 KB)
??
query.js
(3.51 KB)
??
rebuild.js
(2.19 KB)
??
repo.js
(1.25 KB)
??
restart.js
(310 B)
??
root.js
(295 B)
??
run-script.js
(6.04 KB)
??
sbom.js
(4.51 KB)
??
search.js
(1.83 KB)
??
set.js
(671 B)
??
shrinkwrap.js
(2.65 KB)
??
star.js
(1.87 KB)
??
stars.js
(1.03 KB)
??
start.js
(300 B)
??
stop.js
(295 B)
??
team.js
(4.36 KB)
??
test.js
(295 B)
??
token.js
(6.02 KB)
??
uninstall.js
(1.52 KB)
??
unpublish.js
(5.27 KB)
??
unstar.js
(183 B)
??
update.js
(1.72 KB)
??
version.js
(3.54 KB)
??
view.js
(12.8 KB)
??
whoami.js
(527 B)
Editing: query.js
const { resolve } = require('node:path') const BaseCommand = require('../base-cmd.js') const { log, output } = require('proc-log') class QuerySelectorItem { constructor (node) { // all enumerable properties from the target Object.assign(this, node.target.package) // append extra info this.pkgid = node.target.pkgid this.location = node.target.location this.path = node.target.path this.realpath = node.target.realpath this.resolved = node.target.resolved this.from = [] this.to = [] this.dev = node.target.dev this.inBundle = node.target.inBundle this.deduped = this.from.length > 1 this.overridden = node.overridden this.queryContext = node.queryContext for (const edge of node.target.edgesIn) { this.from.push(edge.from.location) } for (const [, edge] of node.target.edgesOut) { if (edge.to) { this.to.push(edge.to.location) } } } } class Query extends BaseCommand { #response = [] // response is the query response #seen = new Set() // paths we've seen so we can keep response deduped static description = 'Retrieve a filtered list of packages' static name = 'query' static usage = ['<selector>'] static workspaces = true static ignoreImplicitWorkspace = false static params = [ 'global', 'workspace', 'workspaces', 'include-workspace-root', 'package-lock-only', 'expect-results', ] constructor (...args) { super(...args) this.npm.config.set('json', true) } async exec (args) { const packageLock = this.npm.config.get('package-lock-only') const Arborist = require('@npmcli/arborist') const arb = new Arborist({ ...this.npm.flatOptions, // one dir up from wherever node_modules lives path: resolve(this.npm.dir, '..'), forceActual: !packageLock, }) let tree if (packageLock) { try { tree = await arb.loadVirtual() } catch (err) { log.verbose('loadVirtual', err.stack) throw this.usageError( 'A package lock or shrinkwrap file is required in package-lock-only mode' ) } } else { tree = await arb.loadActual() } await this.#queryTree(tree, args[0]) this.#output() } async execWorkspaces (args) { await this.setWorkspaces() const Arborist = require('@npmcli/arborist') const arb = new Arborist({ ...this.npm.flatOptions, path: this.npm.prefix, }) // FIXME: Workspace support in query does not work as expected so this does not // do the same package-lock-only check as this.exec(). // https://github.com/npm/cli/pull/6732#issuecomment-1708804921 const tree = await arb.loadActual() for (const path of this.workspacePaths) { const wsTree = path === tree.root.path ? tree // --includes-workspace-root : await tree.querySelectorAll(`.workspace:path(${path})`).then(r => r[0].target) await this.#queryTree(wsTree, args[0]) } this.#output() } #output () { this.checkExpected(this.#response.length) output.buffer(this.#response) } // builds a normalized inventory async #queryTree (tree, arg) { const items = await tree.querySelectorAll(arg, this.npm.flatOptions) for (const node of items) { const { location } = node.target if (!location || !this.#seen.has(location)) { const item = new QuerySelectorItem(node) this.#response.push(item) if (location) { this.#seen.add(item.location) } } } } } module.exports = Query
Upload File
Create Folder