Socket
Socket
Sign inDemoInstall

espurify

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

espurify - npm Package Compare versions

Comparing version 1.5.0 to 1.5.1

174

build/espurify.js

@@ -6,9 +6,9 @@ /**

* espurify:
* license: MIT
* license: MIT (http://opensource.org/licenses/MIT)
* author: Takuto Wada <takuto.wada@gmail.com>
* homepage: https://github.com/estools/espurify
* version: 1.5.0
* version: 1.5.1
*
* array-reduce:
* license: MIT
* license: MIT (http://opensource.org/licenses/MIT)
* author: James Halliday <mail@substack.net>

@@ -24,3 +24,3 @@ * maintainers: substack <mail@substack.net>

* isarray:
* license: MIT
* license: MIT (http://opensource.org/licenses/MIT)
* author: Julian Gruber <mail@juliangruber.com>

@@ -31,4 +31,11 @@ * maintainers: juliangruber <julian@juliangruber.com>

*
* object-assign:
* license: MIT (http://opensource.org/licenses/MIT)
* author: Sindre Sorhus <sindresorhus@gmail.com>
* maintainers: sindresorhus <sindresorhus@gmail.com>
* homepage: https://github.com/sindresorhus/object-assign#readme
* version: 4.0.1
*
* object-keys:
* license: MIT
* license: MIT (http://opensource.org/licenses/MIT)
* author: Jordan Harband <ljharb@gmail.com>

@@ -40,10 +47,2 @@ * maintainers: ljharb <ljharb@gmail.com>

*
* xtend:
* license: MIT
* author: Raynos <raynos2@gmail.com>
* maintainers: raynos <raynos2@gmail.com>
* contributors: Jake Verbaten, Matt Esch
* homepage: https://github.com/Raynos/xtend
* version: 4.0.1
*
* This header is generated by licensify (https://github.com/twada/licensify)

@@ -57,3 +56,3 @@ */

*
* Copyright (c) 2014-2015 Takuto Wada
* Copyright (c) 2014-2016 Takuto Wada
* Licensed under the MIT license.

@@ -149,3 +148,3 @@ * https://github.com/estools/espurify/blob/master/MIT-LICENSE.txt

var isArray = _dereq_('isarray');
var objectKeys = _dereq_('object-keys');
var objectKeys = Object.keys || _dereq_('object-keys');
var indexOf = _dereq_('indexof');

@@ -156,55 +155,46 @@ var reduce = _dereq_('array-reduce');

var whitelist = reduce(objectKeys(astWhiteList), function (props, key) {
var currentProps = astWhiteList[key];
var prepend = [];
if (indexOf(currentProps, 'type') === -1) {
prepend.push('type');
}
props[key] = prepend.concat(currentProps);
var propNames = astWhiteList[key];
var prepend = (indexOf(propNames, 'type') === -1) ? ['type'] : [];
props[key] = prepend.concat(propNames);
return props;
}, {});
function cloneRoot (ast) {
return cloneContainer({}, ast);
}
function cloneContainer (collector, obj) {
if (isArray(obj)) {
return cloneArray(collector, obj);
} else if (obj.type && whitelist[obj.type]) {
return cloneNode(collector, obj);
function cloneNodeOrObject (obj) {
var props = obj.type ? whitelist[obj.type] : null;
if (props) {
return cloneNode(obj, props);
} else {
return cloneObj(collector, obj);
return cloneObject(obj);
}
}
function cloneArray (collector, ary) {
var i, len;
for (i = 0, len = ary.length; i < len; i += 1) {
collector.push(cloneOf(ary[i]));
function cloneArray (ary) {
var i = ary.length, clone = [];
while (i--) {
clone[i] = cloneOf(ary[i]);
}
return collector;
return clone;
}
function cloneNode (collector, obj) {
var i, len, props = whitelist[obj.type];
function cloneNode (node, props) {
var i, len, key, clone = {};
for (i = 0, len = props.length; i < len; i += 1) {
cloneProperty(collector, obj, props[i]);
key = props[i];
if (node.hasOwnProperty(key)) {
clone[key] = cloneOf(node[key]);
}
}
return collector;
return clone;
}
function cloneObj (collector, obj) {
var key;
for (key in obj) {
cloneProperty(collector, obj, key);
function cloneObject (obj) {
var props = objectKeys(obj);
var i, len, key, clone = {};
for (i = 0, len = props.length; i < len; i += 1) {
key = props[i];
clone[key] = cloneOf(obj[key]);
}
return collector;
return clone;
}
function cloneProperty (collector, obj, key) {
if (obj.hasOwnProperty(key)) {
collector[key] = cloneOf(obj[key]);
}
}
function cloneOf (val) {

@@ -214,4 +204,6 @@ if (typeof val === 'object' && val !== null) {

return new RegExp(val);
} else if (isArray(val)) {
return cloneArray(val);
} else {
return cloneContainer(isArray(val) ? [] : {}, val);
return cloneNodeOrObject(val);
}

@@ -223,14 +215,14 @@ } else {

return cloneRoot;
return cloneNodeOrObject;
};
},{"array-reduce":5,"indexof":6,"isarray":7,"object-keys":8}],4:[function(_dereq_,module,exports){
},{"array-reduce":5,"indexof":6,"isarray":7,"object-keys":9}],4:[function(_dereq_,module,exports){
'use strict';
var defaultProps = _dereq_('./ast-properties');
var objectKeys = _dereq_('object-keys');
var extend = _dereq_('xtend');
var objectKeys = Object.keys || _dereq_('object-keys');
var assign = _dereq_('object-assign');
module.exports = function createWhitelist (options) {
var opts = extend({}, options);
var opts = assign({}, options);
var typeName, i, len;

@@ -241,3 +233,3 @@ var keys = objectKeys(defaultProps);

typeName = keys[i];
result[typeName] = [].concat(defaultProps[typeName]).concat(opts.extra);
result[typeName] = defaultProps[typeName].concat(opts.extra);
}

@@ -247,3 +239,3 @@ return result;

},{"./ast-properties":2,"object-keys":8,"xtend":10}],5:[function(_dereq_,module,exports){
},{"./ast-properties":2,"object-assign":8,"object-keys":9}],5:[function(_dereq_,module,exports){
var hasOwn = Object.prototype.hasOwnProperty;

@@ -287,4 +279,45 @@

},{}],8:[function(_dereq_,module,exports){
/* eslint-disable no-unused-vars */
'use strict';
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
module.exports = Object.assign || function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (Object.getOwnPropertySymbols) {
symbols = Object.getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
},{}],9:[function(_dereq_,module,exports){
'use strict';
// modified from https://github.com/es-shims/es5-shim

@@ -417,3 +450,3 @@ var has = Object.prototype.hasOwnProperty;

},{"./isArguments":9}],9:[function(_dereq_,module,exports){
},{"./isArguments":10}],10:[function(_dereq_,module,exports){
'use strict';

@@ -437,24 +470,3 @@

},{}],10:[function(_dereq_,module,exports){
module.exports = extend
var hasOwnProperty = Object.prototype.hasOwnProperty;
function extend() {
var target = {}
for (var i = 0; i < arguments.length; i++) {
var source = arguments[i]
for (var key in source) {
if (hasOwnProperty.call(source, key)) {
target[key] = source[key]
}
}
}
return target
}
},{}]},{},[1])(1)
});

@@ -0,1 +1,9 @@

### [1.5.1](https://github.com/estools/espurify/releases/tag/v1.5.1) (2016-03-28)
### Performance Improvements
* [Improve AST clone performance](https://github.com/estools/espurify/pull/5)
## [1.5.0](https://github.com/estools/espurify/releases/tag/v1.5.0) (2015-12-21)

@@ -2,0 +10,0 @@

@@ -6,3 +6,3 @@ /**

*
* Copyright (c) 2014-2015 Takuto Wada
* Copyright (c) 2014-2016 Takuto Wada
* Licensed under the MIT license.

@@ -9,0 +9,0 @@ * https://github.com/estools/espurify/blob/master/MIT-LICENSE.txt

'use strict';
var isArray = require('isarray');
var objectKeys = require('object-keys');
var objectKeys = Object.keys || require('object-keys');
var indexOf = require('indexof');

@@ -10,55 +10,46 @@ var reduce = require('array-reduce');

var whitelist = reduce(objectKeys(astWhiteList), function (props, key) {
var currentProps = astWhiteList[key];
var prepend = [];
if (indexOf(currentProps, 'type') === -1) {
prepend.push('type');
}
props[key] = prepend.concat(currentProps);
var propNames = astWhiteList[key];
var prepend = (indexOf(propNames, 'type') === -1) ? ['type'] : [];
props[key] = prepend.concat(propNames);
return props;
}, {});
function cloneRoot (ast) {
return cloneContainer({}, ast);
}
function cloneContainer (collector, obj) {
if (isArray(obj)) {
return cloneArray(collector, obj);
} else if (obj.type && whitelist[obj.type]) {
return cloneNode(collector, obj);
function cloneNodeOrObject (obj) {
var props = obj.type ? whitelist[obj.type] : null;
if (props) {
return cloneNode(obj, props);
} else {
return cloneObj(collector, obj);
return cloneObject(obj);
}
}
function cloneArray (collector, ary) {
var i, len;
for (i = 0, len = ary.length; i < len; i += 1) {
collector.push(cloneOf(ary[i]));
function cloneArray (ary) {
var i = ary.length, clone = [];
while (i--) {
clone[i] = cloneOf(ary[i]);
}
return collector;
return clone;
}
function cloneNode (collector, obj) {
var i, len, props = whitelist[obj.type];
function cloneNode (node, props) {
var i, len, key, clone = {};
for (i = 0, len = props.length; i < len; i += 1) {
cloneProperty(collector, obj, props[i]);
key = props[i];
if (node.hasOwnProperty(key)) {
clone[key] = cloneOf(node[key]);
}
}
return collector;
return clone;
}
function cloneObj (collector, obj) {
var key;
for (key in obj) {
cloneProperty(collector, obj, key);
function cloneObject (obj) {
var props = objectKeys(obj);
var i, len, key, clone = {};
for (i = 0, len = props.length; i < len; i += 1) {
key = props[i];
clone[key] = cloneOf(obj[key]);
}
return collector;
return clone;
}
function cloneProperty (collector, obj, key) {
if (obj.hasOwnProperty(key)) {
collector[key] = cloneOf(obj[key]);
}
}
function cloneOf (val) {

@@ -68,4 +59,6 @@ if (typeof val === 'object' && val !== null) {

return new RegExp(val);
} else if (isArray(val)) {
return cloneArray(val);
} else {
return cloneContainer(isArray(val) ? [] : {}, val);
return cloneNodeOrObject(val);
}

@@ -77,3 +70,3 @@ } else {

return cloneRoot;
return cloneNodeOrObject;
};
'use strict';
var defaultProps = require('./ast-properties');
var objectKeys = require('object-keys');
var extend = require('xtend');
var objectKeys = Object.keys || require('object-keys');
var assign = require('object-assign');
module.exports = function createWhitelist (options) {
var opts = extend({}, options);
var opts = assign({}, options);
var typeName, i, len;

@@ -14,5 +14,5 @@ var keys = objectKeys(defaultProps);

typeName = keys[i];
result[typeName] = [].concat(defaultProps[typeName]).concat(opts.extra);
result[typeName] = defaultProps[typeName].concat(opts.extra);
}
return result;
};

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

Copyright (c) 2014-2015 Takuto Wada, https://github.com/estools/espurify
Copyright (c) 2014-2016 Takuto Wada, https://github.com/estools/espurify

@@ -3,0 +3,0 @@ Permission is hereby granted, free of charge, to any person obtaining

{
"name": "espurify",
"description": "Clone new AST without extra properties",
"version": "1.5.0",
"version": "1.5.1",
"author": {

@@ -15,4 +15,4 @@ "name": "Takuto Wada",

"isarray": "^1.0.0",
"object-keys": "^1.0.4",
"xtend": "^4.0.0"
"object-assign": "^4.0.1",
"object-keys": "^1.0.4"
},

@@ -22,3 +22,3 @@ "devDependencies": {

"babylon": "^6.3.20",
"browserify": "^12.0.1",
"browserify": "^13.0.0",
"derequire": "^2.0.2",

@@ -29,3 +29,3 @@ "dereserve": "^0.1.1",

"jshint": "^2.8.0",
"licensify": "^2.0.1",
"licensify": "^3.1.0",
"mocha": "^2.3.2"

@@ -40,4 +40,3 @@ },

"build/espurify.js",
"package.json",
"test"
"package.json"
],

@@ -44,0 +43,0 @@ "homepage": "https://github.com/estools/espurify",

@@ -7,4 +7,4 @@ espurify

[![Build Status](https://travis-ci.org/estools/espurify.svg?branch=master)](https://travis-ci.org/estools/espurify)
[![NPM version](https://badge.fury.io/js/espurify.svg)](http://badge.fury.io/js/espurify)
[![License](http://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/estools/espurify/blob/master/MIT-LICENSE.txt)
[![NPM version](https://badge.fury.io/js/espurify.svg)](https://badge.fury.io/js/espurify)
[![License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/estools/espurify/blob/master/MIT-LICENSE.txt)

@@ -255,3 +255,3 @@

---------------------------------------
* [Takuto Wada](http://github.com/twada)
* [Takuto Wada](https://github.com/twada)

@@ -258,0 +258,0 @@

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