| Server IP : 162.19.112.25 / Your IP : 216.73.217.36 Web Server : LiteSpeed System : Linux qamar.tasjeel.ae 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64 User : archiart ( 1428) PHP Version : 8.2.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/alt/alt-nodejs24/root/usr/lib/node_modules/npm/lib/utils/ |
Upload File : |
const { log } = require('proc-log')
// The allowScripts policy MUST live at the project root (RFC npm/rfcs#868).
// A non-root workspace declaring its own allowScripts is almost always a
// mistake: that policy would be silently ignored at install time.
//
// `findWorkspaceAllowScripts` returns the list of offending workspace nodes.
// `warnWorkspaceAllowScripts` is the side-effecting variant that emits one
// install-time `log.warn` per offender.
const findWorkspaceAllowScripts = (tree) => {
const offenders = []
if (!tree?.inventory) {
return offenders
}
for (const node of tree.inventory.values()) {
if (!node.isWorkspace || node.isProjectRoot) {
continue
}
if (node.package?.allowScripts !== undefined) {
offenders.push(node)
}
}
return offenders
}
const warnWorkspaceAllowScripts = (tree) => {
for (const node of findWorkspaceAllowScripts(tree)) {
const name = node.packageName || node.name
log.warn(
'allow-scripts',
`allowScripts in workspace ${name} (${node.path}) is ignored. ` +
'Move the field to the project root package.json.'
)
}
}
module.exports = warnWorkspaceAllowScripts
module.exports.warnWorkspaceAllowScripts = warnWorkspaceAllowScripts
module.exports.findWorkspaceAllowScripts = findWorkspaceAllowScripts