Intrusion Exploit
Server: LiteSpeed
System: Linux cisadane.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: lenf4658 (1805)
PHP: 8.4.19
Disabled: NONE
Upload Files
File: //opt/alt/alt-nodejs14/root/lib/node_modules/npm/lib/install/copy-tree.js
'use strict'
var createNode = require('./node.js').create
module.exports = function (tree) {
  return copyTree(tree, {})
}

function copyTree (tree, cache) {
  if (cache[tree.path]) { return cache[tree.path] }
  var newTree = cache[tree.path] = createNode(Object.assign({}, tree))
  copyModuleList(newTree, 'children', cache)
  newTree.children.forEach(function (child) {
    child.parent = newTree
  })
  copyModuleList(newTree, 'requires', cache)
  copyModuleList(newTree, 'requiredBy', cache)
  return newTree
}

function copyModuleList (tree, key, cache) {
  var newList = []
  if (tree[key]) {
    tree[key].forEach(function (child) {
      const copy = copyTree(child, cache)
      if (copy) {
        newList.push(copy)
      }
    })
  }
  tree[key] = newList
}