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

complex-matcher

Package Overview
Dependencies
Maintainers
3
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

complex-matcher - npm Package Compare versions

Comparing version 0.1.1 to 0.2.0

21

dist/index.bench.js

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

"use strict";exports.__esModule=true;exports.default=void 0;var _=require("./");var _index=require("./index.fixtures");var _default=function _default(_ref){var benchmark=_ref.benchmark;benchmark('parse',function(){(0,_.parse)(_index.pattern);});benchmark('toString',function(){_index.ast.toString();});};exports.default=_default;
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _ = require("./");
var _index = require("./index.fixtures");
var _default = function _default(_ref) {
var benchmark = _ref.benchmark;
benchmark('parse', function () {
(0, _.parse)(_index.pattern);
});
benchmark('toString', function () {
_index.ast.toString();
});
};
exports.default = _default;
//# sourceMappingURL=index.bench.js.map

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

"use strict";exports.__esModule=true;exports.ast=exports.pattern=void 0;var CM=_interopRequireWildcard(require("./"));function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};if(desc.get||desc.set){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}}newObj.default=obj;return newObj;}}var pattern='foo !"\\\\ \\"" name:|(wonderwoman batman) hasCape?';exports.pattern=pattern;var ast=new CM.And([new CM.String('foo'),new CM.Not(new CM.String('\\ "')),new CM.Property('name',new CM.Or([new CM.String('wonderwoman'),new CM.String('batman')])),new CM.TruthyProperty('hasCape')]);exports.ast=ast;
"use strict";
exports.__esModule = true;
exports.ast = exports.pattern = void 0;
var CM = _interopRequireWildcard(require("./"));
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
var pattern = 'foo !"\\\\ \\"" name:|(wonderwoman batman) hasCape? age:32';
exports.pattern = pattern;
var ast = new CM.And([new CM.String('foo'), new CM.Not(new CM.String('\\ "')), new CM.Property('name', new CM.Or([new CM.String('wonderwoman'), new CM.String('batman')])), new CM.TruthyProperty('hasCape'), new CM.Property('age', new CM.Number(32))]);
exports.ast = ast;
//# sourceMappingURL=index.fixtures.js.map

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

"use strict";exports.__esModule=true;exports.setPropertyClause=exports.getPropertyClausesStrings=exports.parse=exports.TruthyProperty=exports.String=exports.StringNode=exports.Property=exports.Not=exports.Or=exports.And=exports.Null=void 0;require("core-js/modules/es6.regexp.split");require("core-js/modules/es6.regexp.replace");require("core-js/modules/es6.function.name");require("core-js/modules/es6.regexp.match");var _some2=_interopRequireDefault(require("lodash/some"));var _isPlainObject2=_interopRequireDefault(require("lodash/isPlainObject"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _inheritsLoose(subClass,superClass){subClass.prototype=Object.create(superClass.prototype);subClass.prototype.constructor=subClass;subClass.__proto__=superClass;}function invoke(fn){var n=arguments.length-1;if(!n){return fn();}fn=arguments[n];var args=new Array(n);for(var i=0;i<n;++i){args[i]=arguments[i];}return fn.apply(undefined,args);}var RAW_STRING_CHARS=invoke(function(){var chars={__proto__:null};var add=function add(a,b){if(b===void 0){b=a;}var i=a.charCodeAt(0);var j=b.charCodeAt(0);while(i<=j){chars[String.fromCharCode(i++)]=true;}};add('$');add('-');add('.');add('0','9');add('_');add('A','Z');add('a','z');return chars;});var isRawString=function isRawString(string){var length=string.length;for(var i=0;i<length;++i){if(!(string[i]in RAW_STRING_CHARS)){return false;}}return true;};var Node=function(){function Node(){}var _proto=Node.prototype;_proto.createPredicate=function createPredicate(){var _this=this;return function(value){return _this.match(value);};};return Node;}();var Null=function(_Node){_inheritsLoose(Null,_Node);function Null(){return _Node.apply(this,arguments)||this;}var _proto2=Null.prototype;_proto2.match=function match(){return true;};_proto2.toString=function toString(){return'';};return Null;}(Node);exports.Null=Null;var formatTerms=function formatTerms(terms){return terms.map(function(term){return term.toString(true);}).join(' ');};var And=function(_Node2){_inheritsLoose(And,_Node2);function And(children){var _this2;_this2=_Node2.call(this)||this;if(children.length===1){return children[0]||_assertThisInitialized(_this2);}_this2.children=children;return _this2;}var _proto3=And.prototype;_proto3.match=function match(value){return this.children.every(function(child){return child.match(value);});};_proto3.toString=function toString(isNested){var terms=formatTerms(this.children);return isNested?"("+terms+")":terms;};return And;}(Node);exports.And=And;var Or=function(_Node3){_inheritsLoose(Or,_Node3);function Or(children){var _this3;_this3=_Node3.call(this)||this;if(children.length===1){return children[0]||_assertThisInitialized(_this3);}_this3.children=children;return _this3;}var _proto4=Or.prototype;_proto4.match=function match(value){return this.children.some(function(child){return child.match(value);});};_proto4.toString=function toString(){return"|("+formatTerms(this.children)+")";};return Or;}(Node);exports.Or=Or;var Not=function(_Node4){_inheritsLoose(Not,_Node4);function Not(child){var _this4;_this4=_Node4.call(this)||this;_this4.child=child;return _this4;}var _proto5=Not.prototype;_proto5.match=function match(value){return!this.child.match(value);};_proto5.toString=function toString(){return'!'+this.child.toString(true);};return Not;}(Node);exports.Not=Not;var Property=function(_Node5){_inheritsLoose(Property,_Node5);function Property(name,child){var _this5;_this5=_Node5.call(this)||this;_this5.name=name;_this5.child=child;return _this5;}var _proto6=Property.prototype;_proto6.match=function match(value){return value!=null&&this.child.match(value[this.name]);};_proto6.toString=function toString(){return formatString(this.name)+":"+this.child.toString(true);};return Property;}(Node);exports.Property=Property;var escapeChar=function escapeChar(char){return'\\'+char;};var formatString=function formatString(value){return isRawString(value)?value:"\""+value.replace(/\\|"/g,escapeChar)+"\"";};var StringNode=function(_Node6){_inheritsLoose(StringNode,_Node6);function StringNode(value){var _this6;_this6=_Node6.call(this)||this;_this6.lcValue=value.toLowerCase();_this6.value=value;Object.defineProperty(_assertThisInitialized(_this6),'match',{value:_this6.match.bind(_assertThisInitialized(_this6))});return _this6;}var _proto7=StringNode.prototype;_proto7.match=function match(value){if(typeof value==='string'){return value.toLowerCase().indexOf(this.lcValue)!==-1;}if(Array.isArray(value)||(0,_isPlainObject2.default)(value)){return(0,_some2.default)(value,this.match);}return false;};_proto7.toString=function toString(){return formatString(this.value);};return StringNode;}(Node);exports.String=exports.StringNode=StringNode;var TruthyProperty=function(_Node7){_inheritsLoose(TruthyProperty,_Node7);function TruthyProperty(name){var _this7;_this7=_Node7.call(this)||this;_this7.name=name;return _this7;}var _proto8=TruthyProperty.prototype;_proto8.match=function match(value){return value!=null&&!!value[this.name];};_proto8.toString=function toString(){return formatString(this.name)+'?';};return TruthyProperty;}(Node);exports.TruthyProperty=TruthyProperty;var parse=invoke(function(){var i;var n;var input;var backtrace=function backtrace(parser){return function(){var pos=i;var node=parser();if(node!==undefined){return node;}i=pos;};};var parseTerms=function parseTerms(Node){var term=parseTerm();if(!term){return new Null();}var terms=[term];while(term=parseTerm()){terms.push(term);}return new Node(terms);};var parseTerm=function parseTerm(){parseWs();var child=parseAnd()||parseOr()||parseNot()||parseProperty()||parseTruthyProperty()||parseString();if(child){parseWs();return child;}};var parseWs=function parseWs(){while(input[i]===' '){++i;}return true;};var parseAnd=backtrace(function(){var and;if(input[i++]==='('&&(and=parseTerm(And))&&input[i++]===')'){return and;}});var parseOr=backtrace(function(){var or;if(input[i++]==='|'&&parseWs()&&input[i++]==='('&&(or=parseTerms(Or))&&input[i++]===')'){return or;}});var parseNot=backtrace(function(){var child;if(input[i++]==='!'&&(child=parseTerm())){return new Not(child);}});var parseProperty=backtrace(function(){var name,child;if((name=parseString())&&parseWs()&&input[i++]===':'&&(child=parseTerm())){return new Property(name.value,child);}});var parseString=function parseString(){var value;if((value=parseQuotedString())!==undefined||(value=parseRawString())!==undefined){return new StringNode(value);}};var parseQuotedString=backtrace(function(){if(input[i++]!=='"'){return;}var value=[];var char;while(i<n&&(char=input[i++])!=='"'){if(char==='\\'){char=input[i++];}value.push(char);}return value.join('');});var parseRawString=function parseRawString(){var value='';var c;while((c=input[i])&&RAW_STRING_CHARS[c]){++i;value+=c;}if(value.length){return value;}};var parseTruthyProperty=backtrace(function(){var name;if((name=parseString())&&parseWs()&&input[i++]==='?'){return new TruthyProperty(name.value);}});return function(input_){i=0;input=input_.split('');n=input.length;try{return parseTerms(And);}finally{input=undefined;}};});exports.parse=parse;var _getPropertyClauseStrings=function _getPropertyClauseStrings(_ref){var child=_ref.child;if(child instanceof Or){var strings=[];child.children.forEach(function(child){if(child instanceof StringNode){strings.push(child.value);}});return strings;}if(child instanceof StringNode){return[child.value];}return[];};var getPropertyClausesStrings=function getPropertyClausesStrings(node){if(!node){return{};}if(node instanceof Property){var _ref2;return _ref2={},_ref2[node.name]=_getPropertyClauseStrings(node),_ref2;}if(node instanceof And){var strings={};node.children.forEach(function(node){if(node instanceof Property){var name=node.name;var values=strings[name];if(values){values.push.apply(values,_getPropertyClauseStrings(node));}else{strings[name]=_getPropertyClauseStrings(node);}}});return strings;}return{};};exports.getPropertyClausesStrings=getPropertyClausesStrings;var setPropertyClause=function setPropertyClause(node,name,child){var property=child&&new Property(name,typeof child==='string'?new StringNode(child):child);if(node===undefined){return property;}var children=(node instanceof And?node.children:[node]).filter(function(child){return!(child instanceof Property&&child.name===name);});if(property!==undefined){children.push(property);}return new And(children);};exports.setPropertyClause=setPropertyClause;
"use strict";
exports.__esModule = true;
exports.setPropertyClause = exports.getPropertyClausesStrings = exports.parse = exports.TruthyProperty = exports.String = exports.StringNode = exports.Property = exports.Number = exports.NumberNode = exports.Not = exports.Or = exports.And = exports.Null = void 0;
var _some2 = _interopRequireDefault(require("lodash/some"));
var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
function invoke(fn) {
var n = arguments.length - 1;
if (!n) {
return fn();
}
fn = arguments[n];
var args = new Array(n);
for (var i = 0; i < n; ++i) {
args[i] = arguments[i];
}
return fn.apply(undefined, args);
}
var RAW_STRING_CHARS = invoke(function () {
var chars = {
__proto__: null
};
var add = function add(a, b) {
if (b === void 0) {
b = a;
}
var i = a.charCodeAt(0);
var j = b.charCodeAt(0);
while (i <= j) {
chars[String.fromCharCode(i++)] = true;
}
};
add('$');
add('-');
add('.');
add('0', '9');
add('_');
add('A', 'Z');
add('a', 'z');
return chars;
});
var isRawString = function isRawString(string) {
var length = string.length;
for (var i = 0; i < length; ++i) {
if (!(string[i] in RAW_STRING_CHARS)) {
return false;
}
}
return true;
};
var Node = function () {
function Node() {}
var _proto = Node.prototype;
_proto.createPredicate = function createPredicate() {
var _this = this;
return function (value) {
return _this.match(value);
};
};
return Node;
}();
var Null = function (_Node) {
_inheritsLoose(Null, _Node);
function Null() {
return _Node.apply(this, arguments) || this;
}
var _proto2 = Null.prototype;
_proto2.match = function match() {
return true;
};
_proto2.toString = function toString() {
return '';
};
return Null;
}(Node);
exports.Null = Null;
var formatTerms = function formatTerms(terms) {
return terms.map(function (term) {
return term.toString(true);
}).join(' ');
};
var And = function (_Node2) {
_inheritsLoose(And, _Node2);
function And(children) {
var _this2;
_this2 = _Node2.call(this) || this;
if (children.length === 1) {
return children[0] || _assertThisInitialized(_this2);
}
_this2.children = children;
return _this2;
}
var _proto3 = And.prototype;
_proto3.match = function match(value) {
return this.children.every(function (child) {
return child.match(value);
});
};
_proto3.toString = function toString(isNested) {
var terms = formatTerms(this.children);
return isNested ? "(" + terms + ")" : terms;
};
return And;
}(Node);
exports.And = And;
var Or = function (_Node3) {
_inheritsLoose(Or, _Node3);
function Or(children) {
var _this3;
_this3 = _Node3.call(this) || this;
if (children.length === 1) {
return children[0] || _assertThisInitialized(_this3);
}
_this3.children = children;
return _this3;
}
var _proto4 = Or.prototype;
_proto4.match = function match(value) {
return this.children.some(function (child) {
return child.match(value);
});
};
_proto4.toString = function toString() {
return "|(" + formatTerms(this.children) + ")";
};
return Or;
}(Node);
exports.Or = Or;
var Not = function (_Node4) {
_inheritsLoose(Not, _Node4);
function Not(child) {
var _this4;
_this4 = _Node4.call(this) || this;
_this4.child = child;
return _this4;
}
var _proto5 = Not.prototype;
_proto5.match = function match(value) {
return !this.child.match(value);
};
_proto5.toString = function toString() {
return '!' + this.child.toString(true);
};
return Not;
}(Node);
exports.Not = Not;
var NumberNode = function (_Node5) {
_inheritsLoose(NumberNode, _Node5);
function NumberNode(value) {
var _this5;
_this5 = _Node5.call(this) || this;
_this5.value = value;
return _this5;
}
var _proto6 = NumberNode.prototype;
_proto6.match = function match(value) {
return value === this.value;
};
_proto6.toString = function toString() {
return String(this.value);
};
return NumberNode;
}(Node);
exports.Number = exports.NumberNode = NumberNode;
var Property = function (_Node6) {
_inheritsLoose(Property, _Node6);
function Property(name, child) {
var _this6;
_this6 = _Node6.call(this) || this;
_this6.name = name;
_this6.child = child;
return _this6;
}
var _proto7 = Property.prototype;
_proto7.match = function match(value) {
return value != null && this.child.match(value[this.name]);
};
_proto7.toString = function toString() {
return formatString(this.name) + ":" + this.child.toString(true);
};
return Property;
}(Node);
exports.Property = Property;
var escapeChar = function escapeChar(char) {
return '\\' + char;
};
var formatString = function formatString(value) {
return Number.isNaN(+value) ? isRawString(value) ? value : "\"" + value.replace(/\\|"/g, escapeChar) + "\"" : "\"" + value + "\"";
};
var StringNode = function (_Node7) {
_inheritsLoose(StringNode, _Node7);
function StringNode(value) {
var _this7;
_this7 = _Node7.call(this) || this;
_this7.lcValue = value.toLowerCase();
_this7.value = value;
Object.defineProperty(_assertThisInitialized(_this7), 'match', {
value: _this7.match.bind(_assertThisInitialized(_this7))
});
return _this7;
}
var _proto8 = StringNode.prototype;
_proto8.match = function match(value) {
if (typeof value === 'string') {
return value.toLowerCase().indexOf(this.lcValue) !== -1;
}
if (Array.isArray(value) || (0, _isPlainObject2.default)(value)) {
return (0, _some2.default)(value, this.match);
}
return false;
};
_proto8.toString = function toString() {
return formatString(this.value);
};
return StringNode;
}(Node);
exports.String = exports.StringNode = StringNode;
var TruthyProperty = function (_Node8) {
_inheritsLoose(TruthyProperty, _Node8);
function TruthyProperty(name) {
var _this8;
_this8 = _Node8.call(this) || this;
_this8.name = name;
return _this8;
}
var _proto9 = TruthyProperty.prototype;
_proto9.match = function match(value) {
return value != null && !!value[this.name];
};
_proto9.toString = function toString() {
return formatString(this.name) + '?';
};
return TruthyProperty;
}(Node);
exports.TruthyProperty = TruthyProperty;
var parse = invoke(function () {
var i;
var n;
var input;
var backtrace = function backtrace(parser) {
return function () {
var pos = i;
var node = parser();
if (node !== undefined) {
return node;
}
i = pos;
};
};
var parseTerms = function parseTerms(Node) {
var term = parseTerm();
if (!term) {
return new Null();
}
var terms = [term];
while (term = parseTerm()) {
terms.push(term);
}
return new Node(terms);
};
var parseTerm = function parseTerm() {
parseWs();
var child = parseAnd() || parseOr() || parseNot() || parseProperty() || parseTruthyProperty() || parseNumberOrString();
if (child) {
parseWs();
return child;
}
};
var parseWs = function parseWs() {
while (input[i] === ' ') {
++i;
}
return true;
};
var parseAnd = backtrace(function () {
var and;
if (input[i++] === '(' && (and = parseTerm(And)) && input[i++] === ')') {
return and;
}
});
var parseOr = backtrace(function () {
var or;
if (input[i++] === '|' && parseWs() && input[i++] === '(' && (or = parseTerms(Or)) && input[i++] === ')') {
return or;
}
});
var parseNot = backtrace(function () {
var child;
if (input[i++] === '!' && (child = parseTerm())) {
return new Not(child);
}
});
var parseProperty = backtrace(function () {
var name, child;
if ((name = parseString()) && parseWs() && input[i++] === ':' && (child = parseTerm())) {
return new Property(name, child);
}
});
var parseNumberOrString = function parseNumberOrString() {
var str = parseQuotedString();
if (str !== undefined) {
return new StringNode(str);
}
str = parseRawString();
if (str !== undefined) {
var asNum = +str;
return Number.isNaN(asNum) ? new StringNode(str) : new NumberNode(asNum);
}
};
var parseString = function parseString() {
var value;
if ((value = parseQuotedString()) !== undefined || (value = parseRawString()) !== undefined) {
return value;
}
};
var parseQuotedString = backtrace(function () {
if (input[i++] !== '"') {
return;
}
var value = [];
var char;
while (i < n && (char = input[i++]) !== '"') {
if (char === '\\') {
char = input[i++];
}
value.push(char);
}
return value.join('');
});
var parseRawString = function parseRawString() {
var value = '';
var c;
while ((c = input[i]) && RAW_STRING_CHARS[c]) {
++i;
value += c;
}
if (value.length) {
return value;
}
};
var parseTruthyProperty = backtrace(function () {
var name;
if ((name = parseString()) && parseWs() && input[i++] === '?') {
return new TruthyProperty(name);
}
});
return function (input_) {
i = 0;
input = input_.split('');
n = input.length;
try {
return parseTerms(And);
} finally {
input = undefined;
}
};
});
exports.parse = parse;
var _getPropertyClauseStrings = function _getPropertyClauseStrings(_ref) {
var child = _ref.child;
if (child instanceof Or) {
var strings = [];
child.children.forEach(function (child) {
if (child instanceof StringNode) {
strings.push(child.value);
}
});
return strings;
}
if (child instanceof StringNode) {
return [child.value];
}
return [];
};
var getPropertyClausesStrings = function getPropertyClausesStrings(node) {
if (!node) {
return {};
}
if (node instanceof Property) {
var _ref2;
return _ref2 = {}, _ref2[node.name] = _getPropertyClauseStrings(node), _ref2;
}
if (node instanceof And) {
var strings = {};
node.children.forEach(function (node) {
if (node instanceof Property) {
var name = node.name;
var values = strings[name];
if (values) {
values.push.apply(values, _getPropertyClauseStrings(node));
} else {
strings[name] = _getPropertyClauseStrings(node);
}
}
});
return strings;
}
return {};
};
exports.getPropertyClausesStrings = getPropertyClausesStrings;
var setPropertyClause = function setPropertyClause(node, name, child) {
var property = child && new Property(name, typeof child === 'string' ? new StringNode(child) : child);
if (node === undefined) {
return property;
}
var children = (node instanceof And ? node.children : [node]).filter(function (child) {
return !(child instanceof Property && child.name === name);
});
if (property !== undefined) {
children.push(property);
}
return new And(children);
};
exports.setPropertyClause = setPropertyClause;
//# sourceMappingURL=index.js.map

16

package.json
{
"name": "complex-matcher",
"version": "0.1.1",
"version": "0.2.0",
"license": "ISC",

@@ -27,9 +27,8 @@ "description": "",

"dependencies": {
"@babel/polyfill": "^7.0.0-beta.36",
"lodash": "^4.17.4"
},
"devDependencies": {
"@babel/cli": "^7.0.0-beta.36",
"@babel/core": "^7.0.0-beta.36",
"@babel/preset-env": "^7.0.0-beta.36",
"@babel/cli": "7.0.0-beta.37",
"@babel/core": "7.0.0-beta.37",
"@babel/preset-env": "7.0.0-beta.37",
"babel-plugin-lodash": "^3.3.2",

@@ -41,7 +40,8 @@ "cross-env": "^5.1.1",

"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"clean": "rimraf dist/",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"prebuild": "rimraf dist/",
"predev": "npm run prebuild",
"prepublishOnly": "npm run build"
"prebuild": "yarn run clean",
"predev": "yarn run clean",
"prepublishOnly": "yarn run build"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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