PATH: //opt/alt/alt-nodejs18/root/usr/lib/node_modules/npm/node_modules/@npmcli/arborist/lib
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 add-rm-pkg-deps.js
↓
X
📁 arborist/
X
📄 audit-report.js
↓
X
📄 calc-dep-flags.js
↓
X
📄 can-place-dep.js
↓
X
📄 case-insensitive-map.js
↓
X
📄 consistent-resolve.js
↓
X
📄 debug.js
↓
X
📄 deepest-nesting-target.js
↓
X
📄 dep-valid.js
↓
X
📄 diff.js
↓
X
📄 edge.js
↓
X
📄 from-path.js
↓
X
📄 gather-dep-set.js
↓
X
📄 index.js
↓
X
📄 inventory.js
↓
X
📄 link.js
↓
X
📄 node.js
↓
X
📄 optional-set.js
↓
X
📄 override-resolves.js
↓
X
📄 override-set.js
↓
X
📄 packument-cache.js
↓
X
📄 peer-entry-sets.js
↓
X
📄 place-dep.js
↓
X
📄 printable.js
↓
X
📄 query-selector-all.js
↓
X
📄 realpath.js
↓
X
📄 relpath.js
↓
X
📄 reset-dep-flags.js
↓
X
📄 retire-path.js
↓
X
📄 shrinkwrap.js
↓
X
📄 signal-handling.js
↓
X
📄 signals.js
↓
X
📄 spec-from-lock.js
↓
X
📄 tracker.js
↓
X
📄 tree-check.js
↓
X
📄 version-from-tgz.js
↓
X
📄 vuln.js
↓
X
📄 yarn-lock.js
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: inventory.js
// a class to manage an inventory and set of indexes of a set of objects based // on specific fields. const { hasOwnProperty } = Object.prototype const debug = require('./debug.js') const keys = ['name', 'license', 'funding', 'realpath', 'packageName'] class Inventory extends Map { #index constructor () { super() this.#index = new Map() for (const key of keys) { this.#index.set(key, new Map()) } } // XXX where is this used? get primaryKey () { return 'location' } // XXX where is this used? get indexes () { return [...keys] } * filter (fn) { for (const node of this.values()) { if (fn(node)) { yield node } } } add (node) { const root = super.get('') if (root && node.root !== root && node.root !== root.root) { debug(() => { throw Object.assign(new Error('adding external node to inventory'), { root: root.path, node: node.path, nodeRoot: node.root.path, }) }) return } const current = super.get(node.location) if (current) { if (current === node) { return } this.delete(current) } super.set(node.location, node) for (const [key, map] of this.#index.entries()) { let val if (hasOwnProperty.call(node, key)) { // if the node has the value, use it even if it's false val = node[key] } else if (key === 'license' && node.package) { // handling for the outdated "licenses" array, just pick the first one // also support the alternative spelling "licence" if (node.package.license) { val = node.package.license } else if (node.package.licence) { val = node.package.licence } else if (Array.isArray(node.package.licenses)) { val = node.package.licenses[0] } else if (Array.isArray(node.package.licences)) { val = node.package.licences[0] } } else if (node[key]) { val = node[key] } else { val = node.package?.[key] } if (val && typeof val === 'object') { // We currently only use license and funding /* istanbul ignore next - not used */ if (key === 'license') { val = val.type } else if (key === 'funding') { val = val.url } } if (!map.has(val)) { map.set(val, new Set()) } map.get(val).add(node) } } delete (node) { if (!this.has(node)) { return } super.delete(node.location) for (const [key, map] of this.#index.entries()) { let val if (node[key] !== undefined) { val = node[key] } else { val = node.package?.[key] } const set = map.get(val) if (set) { set.delete(node) if (set.size === 0) { map.delete(node[key]) } } } } query (key, val) { const map = this.#index.get(key) if (arguments.length === 2) { if (map.has(val)) { return map.get(val) } return new Set() } return map.keys() } has (node) { return super.get(node.location) === node } set () { throw new Error('direct set() not supported, use inventory.add(node)') } } module.exports = Inventory
SIMPAN PERUBAHAN