Socket
Socket
Sign inDemoInstall

commonjs-walker

Package Overview
Dependencies
24
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 7.0.3 to 7.1.0

53

lib/parser.js

@@ -19,7 +19,18 @@ 'use strict'

parser._lex_js(content, function (err, ast) {
var message
var parsed
if (err) {
parsed = tools.fixes_line_code(err.message)
message = 'Error parsing "' + path + '": ' + parsed.message
if (parsed.line) {
message += '\n\n' + tools.print_code(content, {
line: parsed.line
})
}
return callback({
code: 'ERROR_PARSE_JS',
message: 'Error parsing "' + path + '": '
+ parser._fixes_line_code(err.stack),
message: message,
data: {

@@ -41,6 +52,11 @@ path: path,

} catch(e) {
parsed = tools.fixes_line_code(e.message)
message = 'Error parsing dependencies: '
+ parsed.message
+ '\n\n'
+ tools.print_code(content, e.loc)
return callback({
code: 'WRONG_USAGE_REQUIRE',
message: 'Error parsing dependencies: '
+ parser._fixes_line_code(e.message),
message: message,
data: {

@@ -70,3 +86,3 @@ path: path,

parser._lex_js = function (content, callback) {
content = parser._silly_wrap(content)
content = tools.silly_wrap(content)

@@ -87,16 +103,2 @@ var ast

parser._silly_wrap = function (content) {
return '(function(){\n' // '\n' to prevent '(function(){//a})'
+ content
+ '\n})()'
}
parser._fixes_line_code = function(message) {
return message.replace(/Line\s*(\d+)/i, function (m, g1) {
return 'Line ' + (parseInt(g1) - 1)
})
}
// Parses AST and returns the dependencies

@@ -152,11 +154,10 @@ parser._parse_dependencies = function (node, dependencies, options) {

var loc = node.callee.loc.start
var loc_text = generate_loc_text(loc)
var check_length = options.check_require_length
if (args.length === 0) {
tools.throw(check_length, loc_text + 'Method `require` accepts one and only one parameter.')
tools.throw(check_length, 'Method `require` accepts one and only one parameter.', loc)
}
if (check_if_length_exceeded && args.length > 1) {
tools.throw(check_length, loc_text + 'Method `require` should not contains more than one parameters')
tools.throw(check_length, 'Method `require` should not contains more than one parameters', loc)
}

@@ -170,3 +171,4 @@

if (arg1.type !== 'Literal') {
tools.throw(!options.allow_non_literal_require, generate_loc_text(arg1.loc.start) + 'Method `require` only accepts a string literal.' )
tools.throw(!options.allow_non_literal_require, 'Method `require` only accepts a string literal.', arg1.loc.start)
} else {

@@ -220,6 +222,1 @@ deps_array.push(arg1.value)

}
function generate_loc_text (loc) {
return 'Line ' + loc.line + ': Column ' + loc.column + ': '
}

@@ -1,31 +0,82 @@

'use strict';
'use strict'
var REGEX_EXT = /\.([a-z0-9]+)$/i;
var code = require('print-code')
var REGEX_EXT = /\.([a-z0-9]+)$/i
// @returns {Boolean}
exports.match_ext = function (path, ext) {
var match = path.match(REGEX_EXT);
var match = path.match(REGEX_EXT)
return match
? match[1] === ext
// if there is no extension
: true;
};
: true
}
exports.throw = function (enable, message) {
function generate_loc_text (loc) {
return 'Line ' + loc.line + (
loc.column
? ': Column ' + + loc.column
: ''
) + ': '
}
exports.throw = function (enable, message, loc) {
// silly wrap
-- loc.line
if (enable) {
throw new Error(message);
var err = new Error(generate_loc_text(loc) + message)
err.loc = loc
throw err
}
};
}
exports.print_code = function (content, loc) {
var gen = code(content)
.highlight(loc.line)
.slice(Math.max(0, loc.line - 2), loc.line + 2)
if (typeof loc.column === 'number') {
gen.arrow_mark(loc.line, loc.column)
}
return gen.get()
}
// Silly wrap the file content to allow `return` statement
exports.silly_wrap = function (content) {
return '(function(){\n' // '\n' to prevent '(function(){//a})'
+ content
+ '\n})()'
}
exports.fixes_line_code = function(message) {
var line
message = message.replace(/Line\s*(\d+)/i, function (m, g1) {
line = parseInt(g1) - 1
return 'Line ' + line
})
return {
message: message,
line: line
}
}
exports.simple_clone = function (object) {
var key;
var obj = {};
var key
var obj = {}
for (key in object) {
obj[key] = exports._shadow_clone(object[key]);
obj[key] = exports._shadow_clone(object[key])
}
return obj;
};
return obj
}

@@ -37,4 +88,4 @@

F.prototype = object;
return new F;
};
F.prototype = object
return new F
}
{
"name": "commonjs-walker",
"version": "7.0.3",
"version": "7.1.0",
"description": "Analyzer and tree walker for commonjs.",

@@ -41,4 +41,5 @@ "main": "index.js",

"mix2": "^1.0.1",
"print-code": "^1.0.1",
"resolve": "^1.1.6"
}
}
SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc