New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

acorn-umd

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

acorn-umd - npm Package Compare versions

Comparing version 0.3.0 to 0.3.1

27

dist/acorn-umd.js

@@ -8,2 +8,3 @@ var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };

var assign = _lodash.assign;
var clone = _lodash.clone;
var find = _lodash.find;

@@ -14,2 +15,3 @@ var filter = _lodash.filter;

var reject = _lodash.reject;
var result = _lodash.result;
var sortBy = _lodash.sortBy;

@@ -61,3 +63,9 @@ var take = _lodash.take;

function createImportSpecifier(source, isDef) {
function createImportSpecifier(source, definition, isDef) {
var imported = undefined;
if (definition.type === "MemberExpression") {
imported = clone(definition.property);
isDef = false;
}
// Add the specifier

@@ -75,3 +83,4 @@ var name = source.name;

},
"default": typeof isDef === "boolean" ? isDef : true
imported: imported,
"default": isDef
});

@@ -99,2 +108,3 @@ }

switch (node.type) {
case "MemberExpression":
case "CallExpression":

@@ -104,3 +114,3 @@ importExpr = node;

case "AssignmentExpression":
var specifier = createImportSpecifier(node.left, false);
var specifier = createImportSpecifier(node.left, node.right, false);
specifier.local.name = node.left.property.name;

@@ -120,6 +130,10 @@ result.specifiers.push(specifier);

importExpr = value;
result.specifiers.push(createImportSpecifier(source, isVariable));
result.specifiers.push(createImportSpecifier(source, importExpr, isVariable));
}
}
if (importExpr.type === "MemberExpression") {
importExpr = importExpr.object;
}
result.source = createSourceNode(node, importExpr.arguments[0]);

@@ -136,2 +150,3 @@ return result;

switch (node.type) {
case "MemberExpression":
case "CallExpression":

@@ -149,2 +164,6 @@ expr = node;

}
// handle require('x').y;
if (result(expr, "type") === "MemberExpression") {
expr = expr.object;
}
if (expr && isRequireCallee(expr)) {

@@ -151,0 +170,0 @@ requires.push(node);

2

package.json
{
"name": "acorn-umd",
"version": "0.3.0",
"version": "0.3.1",
"description": "Parse acorn ast for AMD, CommonJS, and ES6 definitions",

@@ -5,0 +5,0 @@ "main": "dist/acorn-umd.js",

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

import {assign, find, filter, matches, pluck, reject, sortBy, take, zip} from 'lodash';
import {assign, clone, find, filter, matches, pluck, reject, result, sortBy, take, zip} from 'lodash';
import estraverse from 'estraverse';

@@ -40,5 +40,12 @@ import Node from './Node';

function createImportSpecifier(source, isDef) {
function createImportSpecifier(source, definition, isDef) {
let imported;
if (definition.type === 'MemberExpression') {
imported = clone(definition.property);
isDef = false;
}
// Add the specifier
let {name, type, start, end} = source;
return new Node({

@@ -50,3 +57,4 @@ start, end,

},
default: typeof isDef === 'boolean' ? isDef : true
imported,
default: isDef
});

@@ -69,2 +77,3 @@ }

switch (node.type) {
case 'MemberExpression':
case 'CallExpression':

@@ -74,3 +83,3 @@ importExpr = node;

case 'AssignmentExpression':
let specifier = createImportSpecifier(node.left, false);
let specifier = createImportSpecifier(node.left, node.right, false);
specifier.local.name = node.left.property.name;

@@ -89,6 +98,10 @@ result.specifiers.push(specifier);

importExpr = value;
result.specifiers.push(createImportSpecifier(source, isVariable));
result.specifiers.push(createImportSpecifier(source, importExpr, isVariable));
}
}
if (importExpr.type === 'MemberExpression') {
importExpr = importExpr.object;
}
result.source = createSourceNode(node, importExpr.arguments[0]);

@@ -105,2 +118,3 @@ return result;

switch (node.type) {
case 'MemberExpression':
case 'CallExpression':

@@ -118,2 +132,6 @@ expr = node;

}
// handle require('x').y;
if (result(expr, 'type') === 'MemberExpression') {
expr = expr.object;
}
if (expr && isRequireCallee(expr)) {

@@ -120,0 +138,0 @@ requires.push(node);

@@ -243,2 +243,48 @@ import {parse} from 'acorn';

});
describe('non default import specifiers', function() {
let code = `
let test = require('prova').test;
`;
let ast = parse(code, {ecmaVersion: 6});
let imports = umd(ast, {
es6: false, amd: false, cjs: true
});
it ('should identify require calls', function() {
expect(imports).to.have.length(1);
imports.forEach(node => {
expect(node).to.have.property('source');
expect(node).to.have.property('specifiers');
expect(node).to.have.property('type', 'CJSImport');
expect(node).to.have.property('reference');
});
});
it('should have the correct settings', function() {
let test = imports[0];
expect(test).to.have.property('start', 13);
expect(test).to.have.property('end', 46);
expect(test.specifiers).to.be.deep.equal([{
type: 'ImportSpecifier',
local: {
name: 'test',
start: 17, end: 21,
type: 'Identifier'
},
imported: {
name: 'test',
start: 41, end: 45,
type: 'Identifier'
},
start: 17, end: 21,
default: false
}]);
expect(_.omit(test.source, '_ast', 'reference')).to.be.deep.equal({
type: 'Literal',
value: 'prova',
raw: '\'prova\'',
start: 32, end: 39
});
});
});
});
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc