Socket
Socket
Sign inDemoInstall

detective

Package Overview
Dependencies
14
Maintainers
2
Versions
41
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.1.1 to 4.2.0

61

index.js

@@ -1,2 +0,3 @@

var aparse = require('acorn').parse;
var acorn = require('acorn');
var walk = require('acorn/dist/walk');
var escodegen = require('escodegen');

@@ -9,3 +10,3 @@ var defined = require('defined');

if (!opts) opts = {};
return aparse(src, {
return acorn.parse(src, {
ecmaVersion: defined(opts.ecmaVersion, 6),

@@ -23,27 +24,2 @@ sourceType: opts.sourceType,

var traverse = function (node, cb) {
if (Array.isArray(node)) {
for (var i = 0; i < node.length; i++) {
if (node[i] != null) {
node[i].parent = node;
traverse(node[i], cb);
}
}
}
else if (node && typeof node === 'object') {
cb(node);
for (var key in node) {
if (!node.hasOwnProperty(key)) continue;
if (key === 'parent' || !node[key]) continue;
node[key].parent = node;
traverse(node[key], cb);
}
}
};
var walk = function (src, opts, cb) {
var ast = parse(src, opts);
traverse(ast, cb);
};
var exports = module.exports = function (src, opts) {

@@ -60,9 +36,6 @@ return exports.find(src, opts).strings;

var isRequire = opts.isRequire || function (node) {
var c = node.callee;
return c
&& node.type === 'CallExpression'
&& c.type === 'Identifier'
&& c.name === word
return node.callee.type === 'Identifier'
&& node.callee.name === word
;
}
};

@@ -75,13 +48,17 @@ var modules = { strings : [], expressions : [] };

walk(src, opts.parse, function (node) {
if (!isRequire(node)) return;
if (node.arguments.length) {
if (node.arguments[0].type === 'Literal') {
modules.strings.push(node.arguments[0].value);
var ast = parse(src, opts.parse);
walk.simple(ast, {
CallExpression: function (node) {
if (!isRequire(node)) return;
if (node.arguments.length) {
if (node.arguments[0].type === 'Literal') {
modules.strings.push(node.arguments[0].value);
}
else {
modules.expressions.push(escodegen.generate(node.arguments[0]));
}
}
else {
modules.expressions.push(escodegen.generate(node.arguments[0]));
}
if (opts.nodes) modules.nodes.push(node);
}
if (opts.nodes) modules.nodes.push(node);
});

@@ -88,0 +65,0 @@

{
"name": "detective",
"description": "find all require() calls by walking the AST",
"version": "4.1.1",
"version": "4.2.0",
"repository": {

@@ -6,0 +6,0 @@ "type": "git",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc