Comparing version 1.5.0 to 1.5.1
@@ -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 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
2
32770
9
578
1
+ Addedobject-assign@^4.0.1
+ Addedobject-assign@4.1.1(transitive)
- Removedxtend@^4.0.0
- Removedxtend@4.0.2(transitive)